关键词搜索

全站搜索
×
密码登录在这里
×
注册会员
×

已有账号? 请点击

忘记密码

已有账号? 请点击

使用其他方式登录

npm ci和npm install命令区别

发布2022-06-10 浏览718次

详情内容

npm大家肯定都使用过,对于npm install很熟悉,安装依赖包的,但是对于npm ci却陌生,可能会有一些不经常使用的命令,npm ci和npm install都可以用来安装依赖,他们之间有什么区别呢?官方文档

npm cinpm install类似,不同之处在于npm ci旨在用于自动化环境,例如测试平台、持续集成和部署,或者您希望确保对依赖项进行全新安装。

npm ci 在以下情况下会明显更快:

  • 有一个 package-lock.json 或 npm-shrinkwrap.json 文件

  • node_modules 不存在或为空目录

npm installnpm ci 的主要区别:

  • 项目必须有 package-lock.json 或 npm-shrinkwrap.json,否则无法使用npm ci

  • 如果 package-lock.json 中的依赖项与 package.json 中的依赖项不匹配,则 npm ci 将退出并显示错误,而不是更新 package-lock.json。

  • npm ci 一次只能安装整个项目:无法添加单个依赖项。

  • npm ci 开始安装之前自动删除node_modules文件夹。

  • npm ci不会更改package.json和package-lock.json

由此我们知道,当我们进行CI/CD或生产发布时,最好使用npm ci,它会严格按照package-lock.json中指定版本进行安装,并且会对比package-lock.json和package.json依赖,防止由错误的依赖版本造成的故障。

总结下主要的区别

npm ci 要求必需有 package-lock.json 或 npm-shrinkwrap.json 文件存在

如果 lock 与 package.json 中版本不匹配,npm ci 直接报错中断,而不是更新 lock 文件

npm ci 不能用来安装单个依赖,只能用来安装整个项目的依赖

npm ci 会检测如果 node_modules 已经存在,则先删除再进行安装操作

npm ci 会安装 dependencies 和 devDependencies,

和 npm install 一样,生产环境下,即通过 -—production 或通过 NODE_ENV 配置,则只会安装 dependencies


不会更新 package.json 或 package-lock.json 文件,整个安装过程是锁死的

缓存 npm ci --cache .npm

npm ci 时建议加上 --quiet --no-progress 关闭进度和其他无用 log,否则产生的日志会很大。

所以 ci 时推荐完整的命令为 npm ci --cache .npm --quiet --no-progress


点击QQ咨询
开通会员
返回顶部
×
  • 微信支付
微信扫码支付
微信扫码支付
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
确定支付下载