git commit 规范

提交信息尽量使用英文

  1. git add --all
  2. 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
  1. brew install git-extras
  2. git-extras 命令生成 changelog release 自动打 tag & push & trigger hook
  3. $ git changelog # 需要修改
  4. Histroy.md package.json 的版本号,如需要发布 1.0.0 $ git release 1.0.0
  5. 提交规范实例:git commit -m 'fix($guild): solve bugs'
  • conventional-changelog-cli
  1. {
  2. "scripts": {
  3. "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
  4. },
  5. }

版本发布

主干版本发布

当我们在维护最新版本功能时,一般流程如下(以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, 可以这样做:
  1. 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 里面加上如下配置

  1. {
  2. "publishConfig":{
  3. "tag": "2.x"
  4. }
  5. }

加上以上配置,我们就可以愉快的使用 npm publish 了,不用再担心版本发错了。

包发布到 Organizations (@easy-team)

  1. npm publish --access public

npm 常用命令

  • npm 查看指定 package 最新版本
  1. npm view <package> version
  • npm 查看 pakcage 所有版本

—json : 可以完整显示所有版本号, 如果不加的这个,当版本号较多时, 会显示不全,直接显示 …..

  1. npm view <package> versions --json

  • npm 查看 pakcage 所有发布的 tag
  1. npm dist-tag ls <package>

  • npm 发布指定 tag
  1. npm publish --tag next

当我们正在开发的包还不具备正式发布,但先发布用来测试,我们可以通过此种方式进行发布。 其他人通过 npm install 不受影响, 但可以显示指定安装 npm install <package>@next

  • npm 把指定 tag 发布到 latest
  1. npm dist-tag add <package>@<version> latest
  1. npm dist-tag add easywebpack@4.0.0 latest