当前位置: 首页 > news >正文

如何为自己的项目生成changelog

背景

在github上看到人家的更新日志感觉很cool,怎么能给自己项目来一套呢

在这里插入图片描述

环境信息

tds@tdsdeMacBook-Pro demo-doc % node -v
v14.18.1
tds@tdsdeMacBook-Pro demo-doc % npm -v
6.14.15

硬件信息

  • 型号名称:MacBook Pro
  • 版本: 12.6.9
  • 芯片: Apple M1

编码实战

  • 因为我本地的node版本为14.18.1,可以使用standard-version
  • 生成日志需要提交记录符合 Angular 格式(或其他约定的格式)

规范化提交信息

使用其他规范化提交信息的工具也可以

安装规范化工具(详细安装流程和强制约束见参考资料),然后

npm install -g commitizen cz-conventional-changelog

为 commitizen 指定 Adapter.

全局模式下, 需要 ~/.czrc 配置文件, 为 commitizen 指定 Adapter.

echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc

使用git cz提交代码

在这里插入图片描述

全局安装后报错
报错信息如下

PS C:\Users\sky\WebstormProjects\Demo\React\umi> echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
PS C:\Users\sky\WebstormProjects\Demo\React\umi> git cz
The config file at "C:\Users\sky\.czrc" contains invalid charset, expect utf8

解决方案
删除根目录下的.czrc,在vscode中新建.czrc文件,文件内容为{ "path": "cz-conventional-changelog" }

standard-version安装和设置

安装standard-version

npm i --save-dev standard-version

将脚本命令添加到我们的package.json

{..."scripts": {"release": "standard-version","release:dry": "standard-version --dry-run"}...
}

修改standard-version配置.versionrc.js(非必要)

module.exports = {skip: {bump: false, // 跳过升级版本操作changelog: false, // 基于commits生成ChangeLog文档commit: false, // 提交一个commit,包含ChangeLog和版本变更的文件tag: false, // 跳过打tag操作},//types为Conventional Commits标准中定义,目前支持//https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventionaltypes: [{ type: 'feat', section: '✨ Features | 新功能' },{ type: 'fix', section: '🐛 Bug Fixes | Bug 修复' },{ type: 'init', section: '🎉 Init | 初始化' },{ type: 'docs', section: '✏️ Documentation | 文档' },{ type: 'style', section: '💄 Styles | 风格' },{ type: 'refactor', section: '♻️ Code Refactoring | 代码重构' },{ type: 'perf', section: '⚡ Performance Improvements | 性能优化' },{ type: 'test', section: '✅ Tests | 测试' },{ type: 'revert', section: '⏪ Revert | 回退', hidden: true },{ type: 'build', section: '📦‍ Build System | 打包构建' },{ type: 'chore', section: '🚀 Chore | 构建/工程依赖/工具', hidden: true },{ type: 'ci', section: '👷 Continuous Integration | CI 配置' },],
};

生成日志

在按照规范规范提交代码后,运行如下命令:

npm run release

想要确认结果是否符合预期,可运行npm run release:dry进行测试

参考资料

http://www.lryc.cn/news/380376.html

相关文章:

  • MySQL之表碎片化
  • 碳+绿证如何能源匹配?考虑碳交易和绿证交易制度的电力批发市场能源优化程序代码!
  • 【原创】springboot+mysql海鲜商城设计与实现
  • envi5.6+SARscape560安装(CSDN_20240623)
  • 基本循环神经网络(RNN)
  • win32API(CONSOLE 相关接口详解)
  • python爬虫学习笔记一(基本概念urllib基础)
  • MyBatis映射器:一对多关联查询
  • 100多个ChatGPT指令提示词分享
  • vue2和vue3数据代理的区别
  • 已解决ApplicationException异常的正确解决方法,亲测有效!!!
  • 「前端+鸿蒙」鸿蒙应用开发-常用UI组件-图片-参数
  • Tobii Pro Lab 1.232是全球领先的眼动追踪研究实验软件
  • 【flink实战】flink-connector-mysql-cdc导致mysql连接器报类型转换错误
  • 【Linux】系统文件IO·文件描述符fd
  • 【计算机网络篇】数据链路层(6)共享式以太网_网络适配器_MAC地址
  • 导入别人的net文件报红问题sdk
  • LangChain 介绍
  • 【区分vue2和vue3下的element UI Avatar 头像组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • 数据分析必备:一步步教你如何用matplotlib做数据可视化(10)
  • Stable Diffusion部署教程,开启你的AI绘图之路
  • 三生随记——诡异的牙线
  • 批量重命名神器揭秘:一键实现文件夹随机命名,自定义长度轻松搞定!
  • 学习笔记——路由网络基础——路由转发
  • Python网络安全项目开发实战,如何防命令注入
  • 程序员如何高效读代码?
  • 全面分析一下前端框架Angular的来龙去脉,分析angular的技术要点和难点,以及详细的语法和使用规则,底层原理-小白进阶之路
  • VACUUM 剖析
  • 基于LangChain框架搭建知识库
  • LeetCode 1789, 6, 138