NPM 安装、测试、CI(无 devDependency)

Mar*_*arc 7 npm

我们的构建管道是npm install-> npm test-> 压缩工件。

然而,这意味着我们的工件包含所有 devDependency。如果我们这样做,npm --only=production我们会丢失 devDependency 但npm test会失败。

我们如何在没有devDependency 的情况下生成经过测试的工件?我们是否只需要相信我们的应用程序在使用它们进行测试后就能在没有 devDependency 的情况下运行?

额外问题:应该如何npm ci适应这个工作流程?

Pet*_*eid 12

您需要遵循您的流程以达到以下效果:

首先,您需要“安装所有依赖项”。

npm install
Run Code Online (Sandbox Code Playgroud)

然后进行测试。

npm test
Run Code Online (Sandbox Code Playgroud)

然后“修剪”您的开发依赖项,如下所示,如文档中详细说明的那样,“将删除您的 devDependency 中指定的包”。

npm prune --production
Run Code Online (Sandbox Code Playgroud)

如果您有 package-lock.json,npm ci您可以简单地使用它来代替,请参阅这个很好的答案以获取差异的解释。npm install