npm ci
npm ci 功能
使用干净的面板安装项目,一般用于持续集成;
npm ci 使用
npm ci
例子
确保您具有软件包锁定和最新安装:
$ cd ./my/npm/project
$ npm install
added 154 packages in 10s
$ ls | grep package-lock
npm ci 在该项目中运行
$ npm ci
added 154 packages in 5s
将 Travis 配置为使用 npm ci 而非构建 npm install:
# .travis.yml
install:
- npm ci
# keep the npm cache around to speed up installs
cache:
directories:
- "$HOME/.npm"
npm ci 说明
该命令与相似 npm-install
,不同之处在于它用于自动化环境(例如测试平台,持续集成和部署),或者在任何情况下都要确保干净安装依赖项。
通过跳过某些面向用户的功能,它可以比常规的 npm 安装快得多。
它比常规安装更严格,可以帮助捕获大多数 npm 用户增量安装的本地环境引起的错误或不一致。
下面是一个对比图
npm install 和 npm ci 区别
npm install
和 npm ci
之间的主要区别是
- 该项目必须具有现有的
package-lock.json
或npm-shrinkwrap.json
。 - 如果程序包锁中的依赖项与 package.json 中的不匹配,npm ci 则将退出并显示错误,而不是更新程序包锁。
- npm ci 一次只能安装整个项目:不能使用此命令添加单个依赖项。
- 如果 node_modules 已经存在,它将在 npm ci 开始安装之前自动删除。
- 它永远不会写入 package.json 或执行任何软件包锁:安装实际上是冻结的。