[英]CircleCI: $ npm test fails and doesn't find installed package
出于某种原因,Circle无法在构建过程的previos步骤中使用与npm install
一起npm install
ts-mocha
。
它曾经工作,但由于某种原因,它不再是突然的。
这是CircleCI构建作业结果:
所有测试在本地运行良好:
这是我用npm test
运行的package.json
中的脚本:
"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
由于代码中没有任何变化,似乎圆形方面出现了一些问题。
即使我尝试重新运行旧的成功构建,它们也会因同样的错误而失败。
我试过的事情:
npm ci && npm test
但产生相同的结果。 package-lock.json
package-lock.json
npm install --no-package-lock
npm update
npm audit fix
也尝试使用npx
而不是依赖于以前安装的ts-mocha
包,这是结果:
我注意到CircleCI NODE_ENV
环境变量设置为production
,因此没有安装任何devDependencies
(即使使用npm install --save
,因为它已经在package.json
列为devDependency
)。
我不知道环境变量什么时候被改变为那个值,但奇怪的是它开始从一天开始到另一天(虽然它应该从设置env变量的那一刻起就已经破了)所以它非常难以调试,但这是一个简单的修复:将NODE_ENV
环境变量更改为与production
不同的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.