自动版本化和生成 CHANGELOG 工具

standard-version: include lifecycle steps(bump, changelog, commit, tag)

  • 自动修改 package.json 的 version
  • 生成 changlog
  • 提交当前记录
  • 打 git tag

安装

# 安装standard-version
$ pnpm add -D standard-version

# Add an npm run script to your package.json
$ npm set-script release "standard-version"

使用

# –release-as, -r 指定版本号
# 示例 version = v1.0.0
# 万能
$ npm release -r x.x.x

# v2.0.0
$ npm release -r major

# v1.1.0
$ npm release -r minor

# v1.0.1
$ npm release -r patch

# v1.0.1-0
$ npm release -r prepatch

跳过某些步骤:

package.json

{
  "standard-version": {
    "skip": {
      "changelog": true
    }
  }
}

版本管理与发布

git tag

语义化版本三段式:主版本(major).次版本(minor).修订版(patch),如 v1.2.1

  • 修改主版本:架构升级或架构重大调整,不兼容的 API 修改
  • 修改次版本:新功能上线或者模块大的调整,向下兼容的功能性新增
  • 修改修订版:bug 修复上线,向下兼容的问题修正

其他定义,比如:1.2.0-beta.1,1.0.1-alpha.1,3.0.0-rc.1

  • 内部测试版 alpha:一般不向外部发布,会有很多 Bug.一般只有测试人员使用
  • 测试版 beta:这个阶段的版本会一直加入新的功能,在 alpha 版之后推出
  • 最终测试版本 rc(Release Candidate):可能成为最终产品的候选版本,如果未出现问题则可发布成为正式版本
git tag version // 打 tag
git tag -a <tag名> -m <注释文字> // 打详细的 tag
git push origin v1.5 // 推送某一tag
git push origin --tags // 推送本地所有 tag
git tag -d v1.1.1 // 删除本地 tag

npm tag

npm 的 tag 有这几种类型:

  • latest:最后版本,npm install 的就是这个
  • beta:测试版本,一般内测使用,需要指定版本号 install,例如 3.1.0-beta.0
  • next: 先行版本,npm install foo@next 安装,例如 3.0.2-alpha.0
npm dist-tag ls [<pkg>] // 查看包的tag
npm publish --tag beta // 发布测试版本包
npm dist-tag add my-package@1.0.1-beta.0 beta // 修改已发布的包类型为测试
npm dist-tag add my-package@1.0.0 latest // 修改已发布的包类型为最后版本

npm publish

  • npm 注册账号
  • npm 设置源为:www.npmjs.com/
  • 终端 npm login
  • package.json 配置 versions,files,main,private,keywords....,其中 versions 每次发布都得更新;files 写需要打包的文件,优先级高于 .npmignore 和 .gitignore,支持通配符;
  • npm publish

查看 npm 打包内容:

npm publish --dry-run
npm pack

设置要发布的地址:

"publishConfig": { "registry": "http://registry.npm.xxx.com/" }

其他参考

git commit 、CHANGELOG 和版本发布的标准自动化

Copyright © Hazel Wei all rights reserved, powered by Gitbook            该文章修订时间: 2025-06-30 22:12:52

results matching ""

    No results matching ""