CircleCI: $ npm test 失败并且找不到已安装的包
CircleCI: $ npm test fails and doesn't find installed package
出于某种原因,Circle 无法在构建过程的先前步骤中使用 ts-mocha
与 npm install
一起安装。
它曾经有效,但由于某种原因突然失效了。
这是 CircleCI 构建作业的结果:
所有测试都 运行在本地正常:
这是 package.json
中的脚本,我 运行 和 npm test
:
"test": "env NODE_ENV=test ts-mocha ./test/**/*.spec.ts --timeout 10000"
包版本为"ts-mocha": "^6.0.0",
这是我的 CircleCI 作业配置(一个月没变):
jobs:
build:
docker:
- image: circleci/node:10.13.0
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
- v1-dependencies-
- run: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package-lock.json" }}
- run: npm test
- run: npx tsc
Circle 端似乎出了问题,因为代码没有任何变化。
即使我尝试重新运行旧的成功构建,它们也失败并出现同样的错误。
我尝试过的事情:
- 运行
npm ci && npm test
在同一步骤中,但产生相同的结果。
- 删除
package-lock.json
- 正在更新
package-lock.json
- 运行
npm install --no-package-lock
- 正在更新 npm
- 运行
npm update
- 运行
npm audit fix
- 正在清理 npm 缓存
还尝试使用 npx
而不是依赖先前安装的 ts-mocha
包,结果如下:
我注意到 CircleCI NODE_ENV
环境变量被设置为 production
,因此任何 devDependencies
都没有安装(即使 npm install --save
,因为它已经在 package.json
) 中列为 devDependency
。
我不知道环境变量是什么时候更改为那个值的,但奇怪的是它从一天到另一天开始崩溃(尽管从设置环境变量的那一刻起它就应该一直在崩溃) 所以调试起来非常困难,但这是一个简单的修复:将 CircleCI 中的 NODE_ENV
环境变量更改为不同于 production
.
的变量
出于某种原因,Circle 无法在构建过程的先前步骤中使用 ts-mocha
与 npm install
一起安装。
它曾经有效,但由于某种原因突然失效了。
这是 CircleCI 构建作业的结果:
所有测试都 运行在本地正常:
这是 package.json
中的脚本,我 运行 和 npm test
:
"test": "env NODE_ENV=test ts-mocha ./test/**/*.spec.ts --timeout 10000"
包版本为"ts-mocha": "^6.0.0",
这是我的 CircleCI 作业配置(一个月没变):
jobs:
build:
docker:
- image: circleci/node:10.13.0
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
- v1-dependencies-
- run: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package-lock.json" }}
- run: npm test
- run: npx tsc
Circle 端似乎出了问题,因为代码没有任何变化。
即使我尝试重新运行旧的成功构建,它们也失败并出现同样的错误。
我尝试过的事情:
- 运行
npm ci && npm test
在同一步骤中,但产生相同的结果。 - 删除
package-lock.json
- 正在更新
package-lock.json
- 运行
npm install --no-package-lock
- 正在更新 npm
- 运行
npm update
- 运行
npm audit fix
- 正在清理 npm 缓存
还尝试使用 npx
而不是依赖先前安装的 ts-mocha
包,结果如下:
我注意到 CircleCI NODE_ENV
环境变量被设置为 production
,因此任何 devDependencies
都没有安装(即使 npm install --save
,因为它已经在 package.json
) 中列为 devDependency
。
我不知道环境变量是什么时候更改为那个值的,但奇怪的是它从一天到另一天开始崩溃(尽管从设置环境变量的那一刻起它就应该一直在崩溃) 所以调试起来非常困难,但这是一个简单的修复:将 CircleCI 中的 NODE_ENV
环境变量更改为不同于 production
.