可靠的安装一个项目
简介
npm ci
例子
请确保您具有程序package-lock和最新安装:
$ 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
#保留npm缓存以加快安装速度
cache:
directories:
- "$HOME/.npm"
说明
这个命令类似于npm install,只是它用于自动化环境,如测试平台、持续集成和部署,或者任何需要确保对依赖项进行干净安装的情况。通过跳过某些面向用户的特性,它可以比常规的npm安装快得多。它也比常规安装更严格,它可以帮助捕获由大多数npm用户的增量安装的本地环境引起的错误或不一致。
简而言之,使用npm install和npm ci的主要区别是:
-
项目必须有一个现有的package-lock.json或npm-shrinkwrap.json.
-
如果package-lock中的依赖项与package.json中的依赖项不匹配包,npm ci将退出并返回错误,而不是更新包锁。
-
npm ci一次只能安装整个项目:不能使用此命令添加单个依赖项。
-
如果node_modules已经存在,则在npm ci开始安装之前,它将被自动删除。
它永远不会写入package.json或者任何包package-locks: 安装基本上是冻结的。