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