我们的构建管道npm install
->npm test
-> 压缩工件。
但是,这意味着我们的工件包含所有开发依赖项。如果我们这样做npm --only=production
我们将失去devDependencies,但npm test
会失败。
如何在没有 devDependencies的情况下生成经过测试的工件?我们是否只需要相信我们的应用程序将在没有 devDependencies 的情况下运行?
奖励问题:npm ci
应该如何适应这个工作流程?
您需要遵循以下过程:
首先,您需要"安装所有依赖项"。
npm install
然后做你的测试。
npm test
然后"修剪"您的开发依赖项,如下所示,如文档中所述,这样做"将删除 devDependencies 中指定的包"。
npm prune --production
关于npm ci
,如果你有一个package-lock.json,你可以简单地使用它来代替npm install
,请参阅这个很好的答案来解释差异。