Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js CircleCI:$npm测试失败且不';找不到已安装的软件包_Node.js_Typescript_Npm_Mocha.js_Circleci - Fatal编程技术网

Node.js CircleCI:$npm测试失败且不';找不到已安装的软件包

Node.js CircleCI:$npm测试失败且不';找不到已安装的软件包,node.js,typescript,npm,mocha.js,circleci,Node.js,Typescript,Npm,Mocha.js,Circleci,由于某些原因,Circle无法在构建过程中的previos步骤中使用随npm安装一起安装的ts mocha 它过去是有用的,但由于某种原因,它突然不起作用了 这是CircleCI构建作业结果: 所有测试在本地正常运行: 这是我使用npm测试运行的package.json中的脚本: “测试”:“env NODE\u env=test ts mocha./test/***.spec.ts--timeout 10000” 软件包版本为“^6.0.0”, 这是我的CircleCI作业配置(一个月

由于某些原因,Circle无法在构建过程中的previos步骤中使用随
npm安装一起安装的
ts mocha

它过去是有用的,但由于某种原因,它突然不起作用了


这是CircleCI构建作业结果:

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


这是我使用
npm测试运行的
package.json
中的脚本:

“测试”:“env NODE\u env=test ts mocha./test/***.spec.ts--timeout 10000”

软件包版本为“^6.0.0”,

这是我的CircleCI作业配置(一个月内没有更改):


似乎有什么东西从圆圈的一边断裂了,因为代码没有变化

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

我尝试过的事情:

  • 在同一步骤中运行
    npm ci&&npm test
    ,但结果相同
  • 正在删除包锁.json
  • 更新包锁.json
  • 正在运行
    npm安装--无程序包锁定
  • 更新npm
  • 正在运行npm更新
  • 正在运行npm审核修复程序
  • 清理npm缓存
  • 还尝试使用
    npx
    而不是依赖以前安装的
    ts mocha
    软件包,结果如下:


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


    我不知道环境变量是什么时候被更改为该值的,但奇怪的是,它从一天到另一天开始中断(尽管它应该从设置env变量的那一刻起就中断了),所以调试非常困难,但这是一个简单的解决方案:将CircleCI中的
    NODE_ENV
    环境变量更改为与
    production
    不同的内容。我注意到CircleCI
    NODE_ENV
    环境变量设置为
    production
    ,因此没有安装任何
    devdependency
    (即使使用
    npm安装--save
    ,因为它已经作为
    devDependency
    列在
    package.json
    中)


    我不知道环境变量是何时更改为该值的,但奇怪的是,它从一天到另一天开始中断(尽管它应该从设置env变量的那一刻起就中断了)因此,调试非常困难,但这是一个简单的解决方案:将CircleCI中的
    NODE_ENV
    环境变量更改为不同于
    production

    的内容,我想知道是否在CircleCI的控制范围之外对
    CircleCI/NODE:10.13.0
    进行了上游更改-这会不时在他们的论坛上得到报告暂时修复此问题,请查看“旋转环境”中的Docker图像摘要最后一次成功的构建。我认为它将有40个字符长。然后查看第一次失败的构建的摘要,看看它是否不同。如果不同,则获取工作的摘要,并使用
    circleci/node:10.13。0@sha256:c8d8e642612872e5a9882c042341c35cbecf9e13d948e3a3bfcb9
    (用您自己的哈希替换)。这是一个临时修复,因为它无法解决根本问题,但至少可以让您的CI重新工作。如果您的CI工作正常,我建议您获得一个构建后SSH会话,并将其作为本地计算机进行调试。我要做的第一件事是查看节点模块安装到何处,然后查看您的当前版本nt working dir是您尝试运行测试时使用的。我想知道是否在circleci的控制范围之外对
    circleci/node:10.13.0进行了上游更改-它会不时在他们的论坛上得到报告。要暂时解决此问题,请查看“Spin up environment”中的Docker image digest最后一次成功的构建。我认为它将有40个字符长。然后查看第一次失败的构建的摘要,看看它是否不同。如果不同,则获取工作的摘要,并使用
    circleci/node:10.13。0@sha256:c8d8e642612872e5a9882c042341c35cbecf9e13d948e3a3bfcb9
    (用您自己的哈希替换)。这是一个临时修复,因为它无法解决根本问题,但至少可以让您的CI重新工作。如果您的CI工作正常,我建议您获得一个构建后SSH会话,并将其作为本地计算机进行调试。我要做的第一件事是查看节点模块安装到何处,然后查看您的当前版本nt working dir是您尝试运行测试时使用的。
    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