使用npm ci
是比npm install
更好的在CI中安装依赖的子命令。
此命令类似于npm install
,不同之处在于它旨在用于自动化环境,例如测试平台、持续集成和部署 —— 或者任何你希望确保对依赖项进行全新安装的情况。
npm ci
在以下情况下会明显更快:
- 有一个
package-lock.json
或npm-shrinkwrap.json
文件。 - 该
node_modules
文件夹丢失或为空。
简而言之,使用npm install
和npm ci
之间的主要区别是:
- 该项目必须具有现有的
package-lock.json
或npm-shrinkwrap.json
. - 如果
package-lock.json
中的依赖项与package.json
中的不匹配,npm ci
将退出并显示错误,而不是更新package-lock.json
。 npm ci
只能一次性安装整个项目,无法使用此命令添加单个依赖项。- 如果
node_modules
已经存在,它将在npm ci
开始安装之前自动删除。 - 它永远不会写入
package.json
或任何包锁:安装基本上是冻结的。