CircleCI: $ npm test 失败并且找不到已安装的包

CircleCI: $ npm test fails and doesn't find installed package

出于某种原因,Circle 无法在构建过程的先前步骤中使用 ts-mochanpm 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 端似乎出了问题,因为代码没有任何变化。

即使我尝试重新运行旧的成功构建,它们也失败并出现同样的错误。

我尝试过的事情:

还尝试使用 npx 而不是依赖先前安装的 ts-mocha 包,结果如下:

我注意到 CircleCI NODE_ENV 环境变量被设置为 production,因此任何 devDependencies 都没有安装(即使 npm install --save,因为它已经在 package.json) 中列为 devDependency

我不知道环境变量是什么时候更改为那个值的,但奇怪的是它从一天到另一天开始崩溃(尽管从设置环境变量的那一刻起它就应该一直在崩溃) 所以调试起来非常困难,但这是一个简单的修复:将 CircleCI 中的 NODE_ENV 环境变量更改为不同于 production.

的变量