前言
-
本文参加了由公众号@若川视野 发起的每周源码共读活动,点击了解详情一起参与。
-
这是源码共读的第39期,链接:juejin.cn/post/714587… 。
学习目标
- 发布npm包;
- 学习git-cz如何使用及使用场景;
- 学习release-it部分,生成changelog、打tag、自动管理版本号;
- 注:这是一个git提交和自动化版本控制发包等相关的一些知识使用场景;
关于git-cz
-
是什么?
- 一个git commit统一规范的工具;
- 用来规范提交commit的格式
-
使用场景?
- 在规范化提交git的项目中,经常会对每次提交的commit的前缀遗忘,只记得 fix、feat、styles这三个,要是想用其他的每次都要去网上搜索下git提交规范,这样太麻烦了;
- 现在这个库的引入,解决了这种场景的问题;
-
怎么使用?
- 安装:npm install git-cz -D
- 添加执行命令: package.json文件中添加 "scripts": { "commit": "git-cz" },
- 使用:修改了文件后先git add . 然后执行npm run commit,接着选择对应的git 类型 ,提交commit说明即可
关于release-it
-
是什么? 自动化版本控制和包发布工具
-
使用场景?
- 生成变更日志、打tag、git提交、标记、推送(一个命令执行这些操作)、npm发布
- 可以根据打的tag在ci/CD中执行相关配置的自动化;
- 简化了多个操作之间命令的记忆;
-
如何使用?
- 安装 npm init release-it
- 配置:在项目跟目录下添加.release-it.json的配置
- 使用:npm run release
- 注意:在使用这个命令之前,一定要把未commit、未暂存的代码都commit了
-
版本相关?
- package.json中的version字段表示发布包的版本,一般是三位如 0.0.1
- 对应major,minor,patch 即大版本.小版本.小修复
关于@release-it/conventional-changelog
-
是什么?
- 是release-it插件的一个小补充,用来在项目文件中写入更新CHANGELOG.md文件
-
使用场景?
- 执行npm run release命令成功后,在项目根目录下生成一个CHANGELOG.md文件,并记录每次执行命令后变更的版本号和操作日期
- 如何使用?
- 安装:npm i @release-it/conventional-changelog -D
- 配置:
-
// 在.release-it.json文件中配置 "plugins": { "@release-it/conventional-changelog": { "preset": "angular", "infile": "CHANGELOG.md" } } - 运行:npm run release
发布npm包与release-it相结合
- 编写包功能
- 配置
// package.json中配置
"exports": "./src/index.js"
// .release-it.json中
"npm": {
"publish": true
},
- 命令执行流程
- npm login;
- git add . ;
- npm run commit ;
- npm run release;
- npm unpublish 包名 --force;(测试流程用,所以执行了删除)
总结
- 了解了这三个包的使用场景,并进行了使用;
- 结合npm发布流程及上述这三个库发布了一个自己的npm包;
- 对于release-it的基本原理,还太了解,好多地方看不懂,需要后期继续深入阅读;