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
来安装新的依赖项或更新现有的依赖项。
网友评论