NPM 是 Node.js 默认的包管理工具,工作中常使用 npm i
来安装和更新依赖。
但是在 NPM v6 版本后,新增了命令 npm ci
用于安装依赖。
npm i
和 npm ci
区别:
npm i
npm i
将安装所有package.json
中的依赖。- 如果使用
^
或~
标识依赖的版本,npm i
将精准安装所标识的版本。 npm i
会更新package-lock.json
文件。
适用场景
安装新依赖或者升级已有依赖。
npm ci
npm ci
将删除node_modules
文件夹以确保干净的环境。npm ci
会依照package-lock.json
里的依赖版本精准安装。npm ci
强依赖于package-lock.json
,如果package-lock.json
不存在,npm ci
将不会工作。
适用场景
在 CI/CD 场景中使用 npm ci
更为合适,一方面,由于 npm ci
依赖于 package-lock.json
,依赖版本确保一致,不会出现线上版本和开发版本不一致而引发的问题;另一方面,首次安装时,使用 npm ci
将比 npm i
更加迅速,原因是由于 package-lock.json
的存在,不需要做依赖的版本检查以及梳理各依赖之间的关系。
2021年2月5日
nice