Conventional Commits规范在Vue项目里怎么总报错?
最近在Vue项目里用Conventional Commits规范,但每次提交代码husky检查就报错。比如我写了这样的组件:
<template>
<button class="btn" @click="handleClick">{{ text }}</button>
</template>
<script>
export default {
props: ['text'],
methods: {
handleClick() {
this.$emit('clicked');
}
}
}
</script>
提交时用”feat(vue-button): 添加点击反馈”却被提示类型错误。试过改commitlint.config.js里的规则,把”feat”加到allowedValues里还是不行。是不是规范里不能用vue-button这种范围格式?或者类型命名有特殊要求?
你用的 vue-button 这个 scope 包含了连字符,虽然语法上没问题,但很可能被 commitlint 配置中的正则表达式给拦截了。性能上来说,最简单的解决方法是修改 commitlint 配置文件,让 scope 支持这种命名方式。
具体做法是找到 commitlint.config.js,把 parserPreset 部分的 scope 校验规则改一下,改成类似这样的正则:
这样配置完记得重启 husky,不然可能会缓存旧规则。如果还不行,可能是 husky 版本太老导致的兼容性问题,建议升级到最新版。说实话我之前也被这个坑过好几次,尤其是团队协作的时候,提交规范这块确实挺烦人的。