Node.js CircleCI:$npm测试失败且不';找不到已安装的软件包
由于某些原因,Circle无法在构建过程中的previos步骤中使用随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作业配置(一个月
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
npm安装--无程序包锁定
npx
而不是依赖以前安装的ts mocha
软件包,结果如下:
我注意到CircleCI
NODE_ENV
环境变量被设置为production
,因此没有安装任何devDependency
(即使使用npm install--save
,因为它已经在package.json
中列为devDependency
)
我不知道环境变量是什么时候被更改为该值的,但奇怪的是,它从一天到另一天开始中断(尽管它应该从设置env变量的那一刻起就中断了),所以调试非常困难,但这是一个简单的解决方案:将CircleCI中的
NODE_ENV
环境变量更改为与production
不同的内容。我注意到CircleCINODE_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