首页 > 解决方案 > CircleCI:$ npm 测试失败并且找不到已安装的包

问题描述

由于某种原因,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 方面似乎出了点问题,因为代码没有变化。

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

我尝试过的事情:

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

在此处输入图像描述

标签: node.jstypescriptnpmmocha.jscircleci

解决方案


我注意到 CircleCINODE_ENV环境变量设置为production,因此devDependencies没有安装任何变量(即使使用,因为它已经在 中npm install --save列为 a )。devDependencypackage.json

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


推荐阅读