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会卸载

相关推荐
光影少年2 小时前
react性能优化比较好的办法有哪些?
前端·react.js·性能优化
fix一个write十个2 小时前
从零搭建音视频通话太痛苦?这个 Vue3 CallKit 让你 5 分钟搞定 1v1 + 群聊通话
前端·vue.js·github
豹哥学前端2 小时前
告别割裂式学习:待办清单项目,一次性掌握数组、本地存储与事件委托
前端·javascript
JYeontu2 小时前
照片墙太死板?做一个会随风摇摆的绳串图片交互效果
前端·javascript·css
2501_915921432 小时前
HTTPS前端劫持 新一代流量劫持解决方案
前端·网络协议·ios·小程序·https·uni-app·iphone
Yue栎廷2 小时前
邪修:Markdown加粗语法**本土化改造
前端·javascript·人工智能
爱怪笑的小杰杰2 小时前
优化 UniApp 日历组件的多语言切换:告别 setLocale 引起的 App 重启
java·前端·uni-app
有所事事2 小时前
如何让AI写代码越写越像你
前端·后端
Allen正心正念20252 小时前
前端——Node.js&npm,学点前端的东西
前端·npm·node.js