在前端开发过程中,npm是我们必须要使用的包管理工具之一。如果您正在开发一个npm包,为了确保代码质量和可维护性,需要规范commit信息。那么,npm包commits就可以帮助您了解commit信息规范,并且可以自动生成版本号并发布到npm。
什么是commits?
在代码管理中,commit是指按照一定要求记录提交信息到版本控制系统中的过程。commit信息一般包括提交者姓名、提交时间、修改的文件、修改内容以及修改原因等。
commits 包是一个用来规范 commit message 的包。
进行 commits 规范约束
首先,我们需要在项目中安装commits:
npm install commits --save-dev
在安装完成后,我们需要在 package.json
文件中添加 commits
配置属性。
-- -------------------- ---- ------- - ---------- - -------- ----------------- ------- ---------------- ------ --------------- ------- ---------------- ------- ---------------- ------- ---------------- -------- ----------------- ----------- -------------------- --------- ------------------ ----- -------------- -------- ----------------- ----------- ------------------- - -
上述配置定义了常见的几种类型的 commit,包括 style
(样式)、feat
(新功能)、fix
(修复)、docs
(文档)、perf
(性能)、test
(测试)、chore
(日常工作)、refactor
(重构)、revert
(撤销)等。
commits类型规范
- 重大版本变更
breaking:
(用于撤销、删除等一些破坏性修改); - 新的特性
feat:
(支持接口、页面等); - 修复 bug
fix:
(修复已知的 bug); - 日常操作
chore:
(对项目本身的页面、文件结构,调整、修改); - 对文档的增加、修改
docs:
(文档的修改); - 对已有的某个功能部分重构
refactor:
(重构已有功能); - 性能的优化
perf:
(关于代码性能的优化); - 关于代码测试的操作
test:
(更新了代码测试); - 撤销某一个历史 commit
revert:
(撤回某个操作,重新做); - 对建立在CI(持续集成)系统上的自动化流程或者对构建或者依赖项进行了修改
ci:
; - 对内部项目或者依赖库进行了修改导致版本号发生改变
build:
;
commits格式
一个标准的 commits 包的格式规范如下:
[type] [subject]
其中:
- type:本次 commit 的类型,比如
feat
、fix
、test
等等。 - subject:本次 commit 的简要说明。
示例:
feat: 新增登录功能 fix: 解决登录token失效问题 test: 对登录功能进行单元测试 docs: 更新README.md文件 refactor: 优化代码结构
进行版本号管理
commits 包会根据规范的 commit message 自动生成版本号。
在 package.json
文件中,可以配置版本号初始值和生成规则。
-- -------------------- ---- ------- - ---------- -------- ---------- - ----------------- - ----------- ----- ------------ ------- - - -
以上配置表示:
noCommit: true
:表示不创建提交记录。increment: minor
:表示版本号按照 minor(小版本号)进行自动升级。
我们可以使用以下命令来生成新版本号:
npm run commits
执行后,commits 包将根据项目中的 commit message 自动生成新的版本号,同时修改 package.json
文件的版本号。
发布 npm 包
发布 npm 包可以使用 npm 官方工具,如下:
npm publish
以上命令会将当前目录下的 package.json 发布到 npm 上。但在发布之前,我们通常会先执行以下命令进行测试:
npm run test
如果测试都通过了,就可以执行发布命令。发布之后,其他开发者就可以在自己的项目中使用你的 npm 包了。
结论
通过 commmits 包,我们可以规范 commit message,让我们更加专注于代码开发,不用去想版本号管理和发布等事情。这对于一个好的代码开发体系结构是必不可少的一部分,有了 commmits,我们可以更好的协作和发布代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055feb81e8991b448dd9cc