给定一个项目,其中 package-lock.json
在源代码控制中进行管理,目标是团队中的所有开发人员都获得完全相同的依赖项。
从 npm 的文档中,我认为开发人员应该使用 npm ci
设置他们的开发环境,也可能在以后更新依赖项时。
但是我在典型的 npm 项目中看到的指令仍然是使用 npm install
.
开发人员是否有理由使用 npm install
而不是 npm ci
?是否 npm ci
在这种情况下有缺点吗?
我了解 npm ci
确实删除了整个 node_modules
因此可能会重新下载一些已经存在的依赖项。
但与 npm install
我经常遇到 npm install
的情况。实际上是在改变 package-lock.json
(见下面的链接),这绝对不是传统项目设置中所期望的,其主要目标是所有开发人员都获得相同的环境。
因此我想推荐使用npm ci
.npm install
的“意外”行为示例:
最佳答案
有不是 使用 npm ci
的理由而不是 npm i
在本地构建 repo 或更新依赖项时(因为它使用 npm 缓存,它的速度与 npm i
大致相同),但有以下情况 npm i
可能是首选:
package.json
中的版本进行了手动更改并希望他们胜过 package-lock.json
中的版本. 关于javascript - 使用 "npm ci"而不是 "npm install"进行确定性项目设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53469032/