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

相关推荐
从文处安24 分钟前
「前端何去何从」混乱到有序的状态管理: Reducer 与 Context
前端·react.js
名字都不重要何况昵称30 分钟前
Color Pick 2D(多 Canvas 像素拾取)
前端·canvas
BY组态1 小时前
Ricon组态系统技术深度解析:打造高性能Web可视化平台
前端·物联网·iot·web组态·组态
山屿落星辰1 小时前
Flutter 高级特性实战:动画、自定义绘制、平台通道与 Web 优化
前端·flutter
弹简特2 小时前
【Vue3速成】01-npm+vue初体验+vite构建vue工程化
vue.js·arcgis·npm
DogDaoDao2 小时前
Windows 下 Git 报错:`touch` 无法识别 —— 原因分析与 7 种解决方案(从入门到精通)
windows·git·程序员·npm·powershell·cmd·touch
@菜菜_达2 小时前
jquery.inputmask插件介绍
前端·javascript·jquery
QuZhengRong2 小时前
【Luck-Report】缓存
java·前端·后端·vue·excel
jiayong232 小时前
前端面试题库 - 浏览器与网络篇
前端·网络·面试
Csvn2 小时前
小程序开发:微信小程序与 uni-app 实战指南
前端