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

相关推荐
程序员黑豆4 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC4 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea5 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
浮生望5 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少5 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
波波0076 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
Brown.alexis6 小时前
es6知识点1-自备使用
前端·ecmascript·es6
小爬的老粉丝7 小时前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
计算机魔术师8 小时前
新兴多智能体系统的模式与问题
前端
用户059540174468 小时前
AI Agent 上下文污染踩坑实录:用 pytest + Redis 揪出 3 类记忆串号 bug,排查 6 小时
前端·css