npm ci 是 Node 包管理器(NPM)中的一个命令,它代表“NPM Clean Install”(NPM 清洁安装)。它用于从 package-lock.json 文件中安装软件包。它类似于 npm install,但是不同的是,它不是从 package.json 文件中读取信息,而是从 package-lock.json 文件中读取,该文件包含了所有软件包及其依赖项的精确记录,包括特定版本。它使用 package.json 只是为了验证是否存在版本不匹配的情况。
npm ci 命令旨在用于连续集成(CI)和自动构建环境中,确保依赖项每次都完全相同,并且不会出现不同版本软件包之间的不匹配或冲突。
与 npm install 相比,此命令更快,更可靠,因为它跳过一些步骤,例如依赖项解析和网络遍历,并且基于锁定文件中指定的确切版本号以确定的方式安装软件包。同时,还提供了如何在 Ubuntu 22.04 或 20.04 上安装 PNPM 的相关信息。
尽管npm ci命令与npm install相似,但有一些关键的不同之处:
npm ci的别名为 npm clean-install、npm ic、npm install-clean和npm isntall-clean。您可以使用这些任何一个别名来开始使用此命令行工具。 要使用它,您的项目文件夹必须具有package lock文件和最新的安装:
cd your-project
使用 npm ci 命令的区别
运行
npm install
开始使用
npm ci
1. npm ci 安装确切的软件包版本
与 npm install
不同,npm ci
将软件包完全按照 package-lock.json 文件中指定的版本安装。这样可以确保项目中所有开发人员使用的依赖库版本相同,便于版本管理。
2. npm ci 不使用缓存
npm install
使用本地缓存来加快安装速度,但 npm ci
不使用该缓存。它直接从注册表下载软件包,确保安装的软件包与锁定文件中指定的软件包完全相同,避免了版本不匹配或冲突的情况。
3. npm ci 先删除 node_modules 目录
在安装软件包之前,npm ci
会删除 node_modules
目录,并从头开始安装依赖项。这有助于确保没有来自先前安装的过时依赖项。
4. npm ci 比 npm install 更快
由于它不使用缓存并安装确切的软件包版本,npm ci
可以比 npm install
更快。这在 CI/CD(持续集成/持续部署)流水线中尤其重要,其中速度和一致性非常关键。在某些情况下,npm ci
比 npm install
快两倍。
要了解“Clean Install 或 CI”的详细命令行语法,请参阅官方文档。如果您正在处理大型项目或具有许多依赖项的项目,可以开始使用 npm ci
,因为它可以帮助消除版本不匹配或冲突的风险。