当前位置: 首页 > article >正文

npm ci 和 npm i 的区别

一、说明

npm ci npm install 命令都是用来安装依赖的命令,但 npm ci 比常规的 npm i 安装要快得多,也更严格,可以帮助捕获由大多数 npm 用户的增量安装的本地环境引起的错误或不一致,使 npm 依赖安装保持一致和稳定锁版本),它旨在用于自动化环境,如测试平台,持续集成和部署。

package.json 中,每次 npm i 后,对应的版本前都有个 ^ 符号。在这种情况下,你再次npm i 时安装的包的版本就有可能会与之前的不一样,具体的,你可以到 package-lock.json 中查看实际的包版本。

^的匹配规则是:>= 当前版本,且保持从左至右的第一个非零版本。

"^1.2.3": 大于等于 1.2.3 且小于 2.0.0版本
"^0.3.4": 大于等于 0.3.4 且小于 0.4.0版本
"^0.0.6": 大于等于 0.0.6 且小于 0.0.7版本

若我们一直使用 npm i 命令时,便会遇到开发和测试、发布时包版本不同的问题,这种细微的差别往往会导致严重的结局。

所以在有  package-lock.jsonnpm-shrinkwrap.json 的项目,为了保持版本的一致和稳定,我们可以使用 npm ci 来替代 npm install。

注:npm 版本要 >= 5.7。

 

二、npm ci 与 npm i 的主要区别

  • 该项目必须有一个 package-lock.json 或 npm-shrinkwrap.json。
  • 如果 package-lock 中的依赖项与 package.json 的依赖项不匹配,npm ci 则将退出并显示错误,而不是更新 package-lock。
  • npm ci 只能一次安装整个项目,使用此命令无法添加单个依赖项。
  • 如果 node_modules 已经存在,它将在 npm ci 开始安装之前自动删除。
  • npm ci 永远不会写入 package.json 或任何包锁,安装基本上是冻结的。

http://www.kler.cn/a/6616.html

相关文章:

  • STM32-笔记5-按键点灯(中断方法)
  • datasets 笔记:加载数据集(基本操作)
  • PostgreSQL技术内幕21:SysLogger日志收集器的工作原理
  • 基于Python3编写的Golang程序多平台交叉编译自动化脚本
  • neo4j 图表数据导入到 TuGraph
  • 案例分享|企查查的数据降本增效之路
  • k8s常用软件包下载
  • RecycleView小结
  • php+微信小程序 websocket
  • C/C++每日一练(20230403)
  • 【数据库管理】⑥日志挖掘LogMiner
  • 图像镶嵌拼接
  • ToBeWritten之MIPS汇编基础铺垫
  • aspnet030高校学生团体管理系统sqlserver
  • 夜天之书 #80 推特开源算法与开放革命
  • RocketMQ消息ACK机制及消费进度管理
  • Linux——控制启动过程(更改root密码)
  • springcloud整合knike4j聚合微服务接口文档
  • 蓝桥杯 路径
  • 2.11 循环赛日程表
  • 编译与链接相关知识
  • 推荐一款强大的OCR工具
  • Golang电脑上怎么下载-Go安装和环境配置图文教程[超详细]
  • 联想服务器上安装 ffmpeg
  • 照片太大怎么压缩变小一点,分享5个简单方法
  • 组合预测 | Python实现LSTM-XGBoost长短期记忆网络组合极限梯度提升树股票价格预测