前言
lerna-changelog-range是一个开源的npm包,它可以根据git commit中的message生成changelog。在开发过程中,我们经常需要记录每个版本的变更记录,而手动地维护changelog是一件费时费力的事情。lerna-changelog-range的出现,可以极大地简化这个过程,让我们的记录工作更加高效和准确。
安装
使用npm安装lerna-changelog-range
npm install -g lerna-changelog-range
使用
初始化lerna项目
lerna init
安装lerna-changelog-range
npm install --save-dev lerna-changelog-range
配置
在每个包的package.json添加字段:
"version": "1.0.0", "changelog": { "file": "CHANGELOG.md", "commitFormatter": "This is commitFormatter example: {}", "compareUrlFormat": "https://github.com/owner/repo/compare/{}...{}" }
生产changelog
生成未发布版本的changelog:
lerna-changelog-range -s
生成指定两个tag之间的changelog:
lerna-changelog-range 1.0.0-rc.3..1.0.0
教程解析
为了深入地了解lerna-changelog-range的机制,我们将从以下几个方面分析它的使用方式和实现原理。
1. 配置
lerna-changelog-range可以生成一个markdown格式的changelog,用户可以根据项目需求进行定制。在每个包的package.json文件中,添加如下字段可以配置生成的changelog。
- file: 指定生成的changelog文件名
- commitFormatter: 自定义每个commit的格式
- compareUrlFormat: 自定义两个版本之间的比较链接格式
2. 插件
lerna-changelog-range依赖一些第三方库,这些库可以通过引入插件实现在changelog中的功能。
以下列出了一些常用的插件及其功能。
- conventional-changelog-angular: 自动生成commit信息
- conventional-changelog-eslint: 自动生成eslint规范信息
- conventional-changelog-lint: 自动生成commit信息
用户可以根据项目需求自定义安装插件。
3. 机制
lerna-changelog-range从git commit中获取信息生成changelog,具体机制如下:
- 获取两个tag之间的commits
- 解析commits信息(使用插件)
- 生成changelog
4. 使用技巧
- 按需添加插件,根据项目需求生成更加精细的changelog
- 自定义commit信息格式,规范commit信息的提交
示例代码
-- -------------------- ---- ------- - ------- ---------- ---------- -------- ---------- ----- ------------ - ------- --------------- ------------------ -------------- ------------------- ----------------------------------------------- -- ------------------ - -------- --------- ------------------------ -------- -- ---------- - ------------ ----------------------- - -
结语
lerna-changelog-range是一个非常实用的npm包,它可以帮助我们自动生成changelog并且省去了手写的麻烦。学会使用lerna-changelog-range可以让我们更加高效地完成开发工作,提高我们工作的效率。
希望大家可以从这篇文章中学到有用的知识,也希望大家可以将这些知识运用到工作中去,更好地改善我们的开发体验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cab81e8991b448e6163