NPM的包版本管理

NPM的包版本管理

一、版本号的结构

NPM遵循SemVer的规范,格式为"^1.6.9",(主版本号、次版本号、修订号);

  • 主版本号:很大的修改,这个版本号变动可能意味着你旧的代码无法正常运行;
  • 次版本号:增加了新功能,一般不影响现有运行,但是新功能仍然可用;
  • 修订号:修复了某些BUG;
  • 其他版本:有些还有例如-alpha内部测试版本,不稳定;-beta公测版,功能没问题,但是可能有BUG;-rc候选正式版,如果没问题就转正;NPM中预发布版本低于正式版本;

二、在package.json中指定版本范围

js 复制代码
  "slugify": "^1.6.9",

我们发现这个版本号有个^符号,这个代表兼容主版本,如果有更新,可以直接更新,但是不会更新主版本,例如有1.8.0版本,会直接更新,但是不会更新2.0.0;以这个举例,我们一起看看其他的:

写法 含义 解释
1.6.9 精确版本 只安装1.6.9的这个版本
^1.6.9 兼容主版本 任何1.x.x都会被更新,但是不会更新到2.x.x
~1.6.9 兼容次版本 任何1.6.X都会被更新,但是不会更新到1.7.X
>=1.6.9 大于等于 更新1.6.9及以上的任意版本
>1.6.9 大于 同理
<1.6.9 小于 同理

三、示例

  • 例如我们现在安装slugify1.0.0
js 复制代码
npm install slugify@1.0.0
  • 可以通过命令检查哪些包可以更新
js 复制代码
npm outdated
  • 更新兼容次版本号
js 复制代码
    "slugify": "~1.0.0",

现在更新只会更新到1.0.2

  • 如果修改为^1.0.0,会兼容主版本

  • 使用npm uninstall slugify会卸载

相关推荐
Rain5097 分钟前
谁动了我的 URL?——记一次微前端“灵异 Bug“的排查实录
前端·vue.js·人工智能·前端框架·bug·ai编程
bjzhang7530 分钟前
使用HTML+CSS美化上传进度条展示
前端·css·html
何以解忧,唯有..36 分钟前
Vue 3 响应式核心:ref() 与 reactive() 的深入解析与实战
前端·javascript·vue.js
晴天1640 分钟前
Chrome DevTools Protocol(CDP)分享-Day36
前端·chrome·chrome devtools
风骏时光牛马41 分钟前
程序员的职场成长:技术之外,更要修炼底层思考力
前端
YWL43 分钟前
CSS变量与预处理器
前端·css
Flynt2 小时前
NestJS 12升级踩坑:从Webpack到Rspack,我折腾了一整个周末
typescript·node.js·nestjs
朱 欢 庆4 小时前
云服务器附件备份到本机内网服务器
运维·服务器·前端·经验分享
支支დ9 小时前
VO by Vercel 前端特定优势:为什么它是构建 AI 应用的新范式
前端·人工智能
香芋芋圆10 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展