12. npm version方法总结

npm version 是官方推荐的方式,它会自动更新 package.json 并(可选)创建 Git Tag。

1.基本语法

js 复制代码
npm version <new_version | major | minor | patch | premajor | preminor | prepatch | prerelease>
1.常用选项
命令 作用 示例(当前版本 1.2.3 → 新版本)
npm version major 主版本号 +1,次版本和补丁归零 2.0.0
npm version minor 次版本号 +1,补丁归零 1.3.0
npm version patch 补丁版本号 +1 1.2.4
npm version premajor 预发布主版本(如 2.0.0-alpha.0) 2.0.0-0
npm version prerelease 预发布版本号 +1(如 1.2.4-beta.1) 1.2.4-0
npm version 1.5.0 直接指定版本号 1.5.0
附加参数
  • --no-git-tag:不创建 Git Tag(默认会创建)。
  • -m "版本描述":自定义 Git Tag 消息(如 npm version patch -m "修复了XX问题")。
  • --allow-same-version:允许版本号不变(通常用于触发版本钩子)。

3. 使用 npm pkg 命令(npm v7+)

通过命令行直接修改 package.json:

bash

bash 复制代码
npm pkg set version="1.2.4"

4. 预发布版本管理

如果需要发布 Alpha/Beta/RC 版本:

bash 复制代码
# 当前版本 1.2.3
npm version prerelease --preid=alpha  # → 1.2.4-alpha.0
npm version prerelease               # → 1.2.4-alpha.1
npm version prepatch --preid=beta    # → 1.3.0-beta.0

5. 版本号规则(SemVer 语义化版本)

npm 遵循 SemVer 2.0 规范,格式为:
主版本.次版本.补丁版本-预发布标签+构建元数据

  • 主版本(Major) :不兼容的 API 变更。
  • 次版本(Minor) :向后兼容的功能新增。
  • 补丁版本(Patch) :向后兼容的问题修复。
  • 预发布标签(Prerelease) :如 -alpha.0、-beta.1。
  • 构建元数据(Build Metadata) :如 +20240501(通常忽略)。

6. 强制修改版本(不推荐)

如果版本号格式错误或需要强制覆盖:

bash 复制代码
npm --no-git-tag version 1.2.3 --allow-same-version

7.示例工作流

bash 复制代码
# 1. 更新补丁版本并提交 Git
npm version patch -m "修复登录页样式问题"

# 2. 推送代码和 Tag
git push && git push --tags

# 3. 发布到 npm
npm publish

如果需要更复杂的版本管理,可以结合工具:

  • standard-version:自动化版本号和 CHANGELOG 生成。
  • lerna:多包管理项目的版本控制。
相关推荐
不停喝水4 分钟前
【前端转全栈java速通课】 项目实战④7-11节 操作数据库-登录-注册-修改密码-注销-mubatis-plus简化crud-
java·前端·数据库
一水鉴天1 小时前
统一对象拓扑(UOT)设计全链定稿:从三件事分离到三继承 之1 20261010(豆包“查看聊天内容”继续)
前端·css
杨杰3981 小时前
我给嵌入式设备写了个 6MB 的 JavaScript 运行时(xuan)
javascript
栖凤1 小时前
Java 的 try-catch 在 Agent 里失效了,我用了 5 个模式才兜住
java·前端·python
粥里有勺糖1 小时前
视野修炼第136期 | 前端小恐龙"Deno"被收购
前端·github·ai编程
修炼的dance1 小时前
页面塞了13.88 MB字体,导出的PDF只有71 KB
前端
qq_369173631 小时前
如何将 AI 生成的 HTML 网页发布成在线链接?不用自己搭建服务器
前端·人工智能·html·效率工具·html 发布
风花一世月1 小时前
⚡ 我把一座含氢能源园区搬进了浏览器(五类能流实时算守恒,在线直接玩)
前端·人工智能
羲云2 小时前
Claude 越界事件之后:Agent 权限设计为什么不能只靠提示词
前端
行者全栈架构师2 小时前
【鸿蒙心迹】鸿蒙网络请求架构实战——@ohos.net.http 到 Axios 封装、拦截器与统一错误处理(HarmonyOS 7.x)
前端·算法·架构