之前,我使用cz-lerna-changelog。问题是这个库很久不更新了,而且仅适用于 lerna 3 及更早版本。所以我创建了cz-conventional-changelog-lerna。它适用于 lerna 5 及以后的版本。

使用示例

项目根目录下的 package.json

{
  "name": "root",
  "private": true,
  "workspaces": ["packages/*"],
  "devDependencies": {
    "commitizen": "^4.1.2",
    "cz-conventional-changelog-lerna": "^0.1.0",
    "lerna": "^5.0.0"
  },
  "scripts": {
    "commit": "cz",
    "commit-all": "git add . && cz"
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog-lerna"
    }
  }
}

lerna.json

{
  "packages": ["packages/*"],
  "command": {
    "version": {
      "conventionalCommits": true
    }
  },
  "version": "independent"
}

提交 git commit 时,首先添加更改到缓冲区(git add),然后执行npm run commit,根据提示填写信息并完成提交。

执行lerna versionlerna publish时会在 package 目录自动生成CHANGELOG.md. 可以参考我的项目: he-tree: Vue 可拖拽树组件.