@shuyun-ep-team/shuyun-version

自动化版本控制 CLI,自动化生成版本号、CHANGELOG.md、发布 npm 包、生成标签、提交至远程 Git

Usage no npm install needed!

<script type="module">
  import shuyunEpTeamShuyunVersion from 'https://cdn.skypack.dev/@shuyun-ep-team/shuyun-version';
</script>

README

shuyun-version

自动化版本控制 CLI,自动化生成版本号、CHANGELOG.md、发布 npm 包、生成标签、提交至远程 Git

安装

安装

npm i --save-dev @shuyun-ep-team/shuyun-version

在 package.json 中增加 script

{
  "scripts": {
    "release": "shuyun-version -r"
  }
}

CLI 使用

如果是 scope 包,如:@shuyun-ep-team/shuyun-version,以@shuyun-ep-team开头,请先使用npm publish --access public,提交第一个版本。

# 查看帮助
shuyun-version -h

# 自动化发布npm包
shuyun-version -r

# 自动化发布npm包并提交git
shuyun-version -p

# 自动更新版本并生CHANGELOG.md
shuyun-version -log

# 自动更新版本并生CHANGELOG.md、打Git标签
shuyun-version -lt

配置

--release [target]       自动化发布npm包
          [target]       目标目录
--publish [target]       自动化发布npm包并提交git
--changelog [target]     自动更新版本并生CHANGELOG.md
--changelogTag [target]  自动更新版本并生CHANGELOG.md

changelog 支持的 commit 类型:

"types": [
    {"type": "feat", "section": "Features"},
    {"type": "fix", "section": "Bug Fixes"},
    {"type": "chore", "hidden": true},
    {"type": "docs", "hidden": true},
    {"type": "style", "hidden": true},
    {"type": "refactor", "hidden": true},
    {"type": "perf", "hidden": true},
    {"type": "test", "hidden": true}
]

一个项目开发及版本管理的流程

假如你是 npm 包

  • 做了一些修改
  • 然后把修改提交了一些 git commit
  • 确认 git 工作区是干净的
  • 执行npx shuyun-version -r,假如是「dist」目录,则npx shuyun-version -r dist
  • 执行脚本后会提示你输入要发布的版本号,假如你输入版本号:0.0.1
  • 版本号无误后,会更改 package.json 中的版本号
  • 生成 CHANGELOG.md,并执行git add . && git commit -m "chore(release): 0.0.1" && git tag -a v0.0.1 -m "release: 0.0.1"
  • 下面再npm publish
  • 如果想要在发布 npm 的同时 push 到 git 远程,则可以执行npx shuyun-version -p

假如你是一个业务项目

你可能只需要一些 changelog 的操作,比如我们每个月发版要打 tag 的操作

  • 做了一些修改
  • 然后把修改提交了一些 git commit
  • 确认 git 工作区是干净的
  • 执行npx shuyun-version -log
  • 执行脚本后会提示你输入要发布的版本号(就是要打的 tag),假如你输入版本号:0.0.1
  • 版本号无误后,会更改 package.json 中的版本号
  • 生成 CHANGELOG.md
  • npx shuyun-version -log仅仅会更新 CHANGELOG.md,如果想要打 tag 需执行npx shuyun-version -lt
  • 最后,别忘了git push提交到远程

为什么造轮子

只是将conventional-changelog-cli与 npm 流程及 Git 提交流程做了相结合,抛砖引玉,希望大家贡献想法,一起优化。