npm ci vs. npm install — 在 Node.
2020-07-16 本文已影响0人
指尖跳动
npm 是Node.js 项目默认的包管理器。
使用 npm 可以轻松安装和更新依赖项。npmjs 上列出了可以使用的依赖项(例如Vue.js 框架),甚至还显示了可以复制并粘贴到终端的安装命令,如 npm i vue 。
如果你已经使用 npm 一段时间了,那么你将常用 npm install(或更短的 npm i)来安装或更新依赖项。
虽然这个安装命令仍然有效,但是在 npm v6 中还是引入了一个新的命令 - npm ci ,那么它是用来 做什么的 ?与 npm i 又有 什么差异 ?
. . .
npm install (简写: npm i)
npm install ,或者 npm i,通常是用来安装依赖项:
- 它将会安装 Node.js 项目所有的依赖项;
- 如果使用
^或~来匹配依赖项的版本时,则npm可能无法安装确切版本; - 利用
npm install安装新依赖项时,会更新package-lock.json。
. . .
npm ci
使用 npm ci ,会发生:
- 将会删除项目中的
node_modules文件夹; - 会依照项目中的
package.json来安装确切版本的依赖项; - 不像
npm install,npm ci不会修改你的package-lock.json。但是它确实期望你的项目中有一个package-lock.json文件 - 如果你没有这个文件,npm ci将不起作用,此时必须使用npm install。
如果你使用 npm ci ,你将获得可靠的构建。特别是当您在 Jenkins 或 GitLab CI 等持续集成工具中运行时,这将非常有用。
. . .
npm ci vs. npm Install — 该用哪一个?
如果你使用 npm v6+:
npm ci
如果你使用 npm v5 或者更低的版本:
- 只能通过
npm install来安装或者更新依赖项; - 尝试升级到最新的 npm 版本。除了
npm ci之外,它还具有npm audit命令,可以更轻松地识别和修复依赖项的安全漏洞。此外,使用 npm v6 安装依赖项应该更快。
. . .
总结
如您所见,这两个命令都有其适用地场景。如果可能的话,我建议使用 npm ci,因为它可靠地完成它的工作,并使用 npm install 来安装新的依赖项或更新现有的依赖项。