npm ci 与 install 的区别

  • npm ci 要求必需有 package-lock.json 或 npm-shrinkwrap.json 文件存在
  • 如果 lock 与 package.json 中版本不匹配, npm ci 直接报错中断,而不是更新 lock 文件
  • npm ci 不能用来安装单个依赖,只能用来安装整个项目的依赖
  • npm ci 会检测如果 node_modules 已经存在,则先删除再进行安装操作
  • npm ci 会安装 dependenciesdevDependencies,
    • 和 npm install 一样,生产环境下,即通过 -—production 或通过 NODE_ENV 配置,则只会安装 dependencies
  • 不会更新 package.jsonpackage-lock.json 文件,整个安装过程是锁死的
  • 缓存 npm ci --cache .npm
  • npm ci 时建议加上 --quiet --no-progress 关闭进度和其他无用 log,否则产生的日志会很大。
  • 所以 ci 时推荐完整的命令为 npm ci --cache .npm --quiet --no-progress

相关资源