由于某些原因,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 update
npm audit fix
还尝试使用npx
而不是依赖先前安装的ts-mocha
软件包,结果是:
答案 0 :(得分:0)
我注意到CircleCI NODE_ENV
环境变量设置为production
,因此没有安装任何devDependencies
(即使安装了npm install --save
,因为它已经被列为devDependency
中的package.json
。
我不知道何时将环境变量更改为该值,但奇怪的是它从一天到另一天开始中断(尽管自从设置env变量那一刻起就应该中断了)调试起来非常困难,但这是一个简单的解决方法:将CircleCI中的NODE_ENV
环境变量更改为与production
不同的内容。