npm-ci(翻译)

396 阅读1分钟

原文:www.npmjs.cn/cli/ci/

可靠的安装一个项目

简介

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: 安装基本上是冻结的。