npm i 和 npm ci 区别

NPM 是 Node.js 默认的包管理工具,工作中常使用 npm i 来安装和更新依赖。

但是在 NPM v6 版本后,新增了命令 npm ci 用于安装依赖。

npm inpm 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 的存在,不需要做依赖的版本检查以及梳理各依赖之间的关系。

1 Comment

  1. reviewer
    王momo
    二月 05, 2021

    nice

    回复

王momo进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注