描述

中英双语

此命令与 npm install 类似,不同之处在于它旨在用于自动化环境,例如测试平台、持续集成和部署——或任何您希望确保对依赖项进行全新安装的情况。

使用 npm installnpm ci 的主要区别是:

  • 项目必须有一个现有的 package-lock.jsonnpm-shrinkwrap.json
  • 如果包锁中的依赖项与 package.json 中的依赖项不匹配,npm ci 将退出并出错,而不是更新包锁。
  • npm ci 一次只能安装整个项目:无法使用此命令添加单个依赖项。
  • 如果 node_modules 已经存在,它将在 npm ci 开始安装之前自动删除。
  • 它永远不会写入 package.json 或任何包锁:安装基本上是冻结的。

注意:如果您通过运行带有可能影响依赖关系树形状的标志(例如 --legacy-peer-deps--install-links)的 npm install 来创建 package-lock.json 文件,则必须向 npm ci 提供相同的标志,否则您可能会遇到错误。一个简单的方法是运行例如 npm config set legacy-peer-deps=true --location=project 并将 .npmrc 文件提交到您的 repo。