代码之家  ›  专栏  ›  技术社区  ›  GMaiolo

circleci:$npm测试失败,找不到已安装的包

  •  0
  • GMaiolo  · 技术社区  · 6 年前

    出于某种原因,Circle无法使用 ts-mocha 安装时 npm install 在以前的步骤中。

    它曾经起作用,但出于某种原因,它不再是突然发生的。


    这是CircleCI生成作业结果:

    circle build job result

    所有测试在本地运行正常:

    local test run


    这是中的脚本 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
    
    

    似乎有什么东西从圆的一面打破了,因为代码没有改变。

    即使我试着重新运行 成功的 生成时,它们会因同样的错误而失败。

    我尝试过的事情:

    • 正在运行 npm ci && npm test 在相同的步骤中,但它产生相同的结果。
    • 正在删除 package-lock.json
    • 正在更新 package-lock.json软件包
    • 正在运行 npm install --no-package-lock
    • 更新NPM
    • 正在运行 npm update
    • 正在运行 npm audit fix
    • 清理NPM缓存

    也尝试使用 npx 而不是依赖以前安装的 TS摩卡 结果是:

    enter image description here

    0 回复  |  直到 6 年前
        1
  •  0
  •   GMaiolo    6 年前

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

    我不知道什么时候环境变量被更改为该值,但奇怪的是它开始从一天中断到另一天(尽管从设置env变量的那一刻起它就应该中断),所以调试非常困难,但这是一个简单的修复:更改 节点环境 circleci中的环境变量与 生产 .

    推荐文章