npm ci 和 npm i 的区别

4 min read

npm ci 和 npm i 的区别在于:

  1. npm ci 是在 package-lock.json 或 npm-shrinkwrap.json 存在的情况下运行的,用于安装项目的依赖项,它会忽略 package.json 中的版本号,而只安装 lock 文件中规定的确切版本号。因此,它更适合于生产环境和持续集成部署等场景,保证依赖项的版本一致性和可重复性。
    而 npm i 则是根据 package.json 中的依赖关系来安装依赖项的,会更新 package-lock.json 和 package.json 中的依赖版本号。因此,它更适合于开发环境和一般使用场景。

  2. npm ci 不会执行 npm scripts,也不会更新或安装其他依赖项,以及不会更新 package.json 和 package-lock.json,从而保证依赖项的一致性和稳定性。而 npm i 则会执行 npm scripts,可以更新和安装其他依赖项,也会更新 package.json 和 package-lock.json。

总之,npm ci 主要用于生产环境和持续集成部署等场景,以保证依赖项的一致性和可重复性;而 npm i 则适用于一般开发和使用场景,可以更新依赖项和 package.json 文件。