git commit 规范
提交信息尽量使用英文
git add --all
git commit -m 'feat: implement react inline js function'
(1)type
提交 commit 的类型,包括以下几种
- feat: 新功能
- fix: 修复问题
- docs: 修改文档
- style: 修改代码格式,不影响代码逻辑
- refactor: 重构代码,理论上不影响现有功能
- perf: 提升性能
- test: 增加修改测试用例
- chore: 修改工具相关(包括但不限于文档、代码生成等)
- deps: 升级依赖
- build: 构建相关
- publish: 打包相关
(2)scope
修改文件的范围(包括但不限于 doc, middleware, proxy, core, config, plugin)
(3)subject
用一句话清楚的描述这次提交做了什么
changelog
- git-extras
brew install git-extras
git-extras 命令生成 changelog 和 release 自动打 tag & push & trigger hook
$ git changelog # 需要修改
Histroy.md 和 package.json 的版本号,如需要发布 1.0.0 $ git release 1.0.0
提交规范实例:git commit -m 'fix($guild): solve bugs'
- conventional-changelog-cli
{
"scripts": {
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
},
}
版本发布
主干版本发布
当我们在维护最新版本功能时,一般流程如下(以easywebpack 为例):
- 从 master 分支 checkout 一个新功能,然后编写功能,然后提交
- 如果是插件类,同时需要补充单元测试,保障验证通过,包括 CI 集成
- 然后发起合并到 master 的 MR,并指定相关开发人员review
- 修改 package.json 版本号为 4.1.0,运行
npm run changelog
生成发布日志 - 执行 git add —all 和 git release 4.10 生成 tag
- 执行
npm publish --tag next
发布用于测试的新版本 - 然后把项目依赖的该插件版本号改成 next,重新安装依赖进行验证
- 验证通过发布 latest 版本
npm dist-tag add easywebpack@4.1.0 latest
历史版本发布
当我开发了一个 node 模块 easywebpack
时, 发布了 1.0.0, 2.0.0, 3.0.0(latest) 版本时, 现在 2.0.0 版本有一个 bug 修复, 该如何发布版本呢?
- 首先在 2.0.0 最新的 tag 或者 branch checkout 一个 bugfix 分支
- 修改完 bug 和 补充单元测试后, 开始发布代码
- 如果直接
npm publish
, 这个时候latest
就是2.0.1
, 而不是3.0.0
, 这个时候大家通过npm install easywebpack
安装的就是2.0.1
- 如果我已经这样做了,怎样快速让
latest
最新版本为3.0.0
, 可以这样做:
npm dist-tag add easywebpack@3.0.0 latest
此时 latest
版本恢复到 3.0.0
, 刚发布的 2.0.1
版本依然有效。 当大家项目 package.json
依赖写的时 ^2.0.0
时, npm install
安装时, 安装的是 2.0.1
版本。这个时候大家通过 npm install easywebpack
安装的就是 3.0.0
.
你可以通过 npm publish --tag 2.x
方式发布历史版本。
- 修复历史版本的问题发布建议方式
我们可以在 2.0.0 分支的 package.json
里面加上如下配置
{
"publishConfig":{
"tag": "2.x"
}
}
加上以上配置,我们就可以愉快的使用 npm publish
了,不用再担心版本发错了。
包发布到 Organizations (@easy-team)
npm publish --access public
npm 常用命令
- npm 查看指定 package 最新版本
npm view <package> version
- npm 查看 pakcage 所有版本
—json : 可以完整显示所有版本号, 如果不加的这个,当版本号较多时, 会显示不全,直接显示 …..
npm view <package> versions --json
- npm 查看 pakcage 所有发布的 tag
npm dist-tag ls <package>
- npm 发布指定 tag
npm publish --tag next
当我们正在开发的包还不具备正式发布,但先发布用来测试,我们可以通过此种方式进行发布。 其他人通过 npm install
不受影响, 但可以显示指定安装 npm install <package>@next
- npm 把指定 tag 发布到 latest
npm dist-tag add <package>@<version> latest
npm dist-tag add easywebpack@4.0.0 latest