繁体   English   中英

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

[英]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
  • 运行npm update
  • 运行npm audit fix
  • 清理npm缓存

也尝试使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM