php项目中的日志插件,changelog 日志自动生成插件

该 工具 针对一些需要手动输入更新日志的项目,实现自动化输出更新日志,并且对更新日志进行内容格式化,便于后期维护,目前主要有以下几个功能模块。

cz -- 定制化 git 提交

log -- 自动生成CHANGELOG.MD 日志文件

lint -- 校验 commit 信息

一、cz 模块

1. 安装 commitizen 依赖包

cnpm i commitizen --save-dev

2. 在 package.json 中加入以下内容

{

...

"config": {

"commitizen": {

"path": "./node_modules/jimi-web-changelog/lib/cz"

}

},

}

复制代码

3. 在 package.json 中创建以下 script 命令

{

"cz": "git add . && git cz"

}

复制代码

按照提示正确输出 commit 信息内容,如下示例:

git.png

ee7aeff87c2fc5c26056528f89ef598d.png

二、log 模块

1. 安装 conventional-changelog-cli 依赖包

cnpm i conventional-changelog-cli --save-dev

复制代码

2. 创建以下命令

{

...

"script": {

"log": "conventional-changelog --config node_modules/jimi-web-changelog/lib/log -i CHANGELOG.md -s -r 0",

}

}

> 结尾数字若为 1 ,生成当前版本的变化情况,若为 0, 生成所有的日志文件。

复制代码

3. 示例

md.png

1dcab6e7c58858d54fa73f8ddf8e2713.png

三、lint 模块

1. 安装 husky commitlint 依赖

cnpm i husky commitlint --save-dev

复制代码

2. 在 package.json 中引入以下配置。

{

...

"husky": {

"hooks": {

"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"

}

},

}

复制代码

3. 在项目根路径下创建 .commitlint.js 或者 commitlint.config.js

具体配置可以参考 commitlint 官方,例子:

module.exports = Object.assign({}, require('jimi-web-changelog/lib/lint'), {

rules: {

'subject-empty': [2, 'never'],

'type-empty': [2, 'never'],

'type-enum': [2, 'always',

[

'新功能',

'修复',

...

]

]

}

}

复制代码

建议

可以搭配 husky 和 lint-stage 效果更佳。它能在你每次提交代码前校验你的代码格式并修复错误的代码格式,具体配置可以参考当前根目录下的 package.json 和 .eslintrc.

Q&A

1. No files added to staging! Did you forget to run git add?

应该没有文件内容变动还执行 git add . 提交导致的。试着对项目进行更改再保存试试。

2. 提交后,输入更新日志命令,CHANGELOG.MD 内容没有更新?

只有每次版本迭代的的时候才会更新这一次的日志信息。可以尝试打个标签最为封版。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值