在前端开发中,我们会经常用到 Git 管理代码版本,而 lint 工具则可以帮助我们统一代码风格,保证代码质量。lint-committed
是一个基于 Git 的场景化 lint 工具,它只对提交的代码进行检查,避免不必要的运算和卡顿。
本篇文章将带大家了解 lint-committed
的使用方法。
安装 lint-committed
你可以通过 npm 进行安装,命令如下:
npm install -D lint-committed
配置 lint-committed
在项目根目录下添加 .lint-committed.config.js
配置文件,内容如下:
module.exports = { ext: 'js', lintCommand: 'npm run lint', commitCommand: 'npm run commit' }
其中,ext
为支持的文件后缀,这里我们设置为 .js
;lintCommand
是用来进行代码 lint 的命令,这里我们假设使用 npm run lint
命令;commitCommand
是我们提交代码的命令,这里我们假设使用 npm run commit
命令。
使用 lint-committed
在使用 git commit
命令提交代码时,我们需要使用 lint-committed
进行检查。在此之前,先让我们建立一个新的代码文件,代码风格不符合规范的格式:
const test = "test"; // 这里用了两个空格而不是 4 个空格 console.log(test);
我们可以使用 npm run lint
命令检查代码,结果如下:
-- -------------------- ---- ------- - --- --- ---- - --------------- ---- --------------- - ------ ---------------- ----------- --- ----- ---------- ---- --- --- -- ----- ------- ------ --- ----- ------- ---- --- ----------- ------ --- ----- ----- --------- ---- ---- ----- -------- ----------- -- - ------ --- ----- - ------ - - -------- -- ------- - --------- - ------ --- - -------- ----------- ------- ---- --- ------- -------
检查到我们的代码存在 4 个问题,有 4 个错误。
现在我们可以使用 git commit
命令提交我们的代码,这时候我们需要添加 --no-verify
参数,以避免 lint-committed
检查暂时阻塞提交,命令如下:
git commit -m "feat: add test file" --no-verify
这时候代码已经被提交了,但是我们的 lint-committed
并没有起作用。
接下来,我们可以再次修改代码,使其符合规范:
const test = 'test'; console.log(test);
然后我们再次进行 git commit
提交,这时候 lint-committed
就会起作用,检查我们的代码格式是否正确。
$ git commit -m "feat: add test file" --no-verify ✗ Please check and commit again. src/test.js 2 error Strings must use singlequote quotes error Does not match the configured pattern: /^(fix|feat|docs|style|refactor|perf|test|workflow|build|ci|chore|revert)(\(.+\))?: .{1,50}/u header-max-length error Strings must use singlequote quotes error Extra semicolon semi
我们可以看到,由于我们的代码风格不符合规范,git commit
被拒绝了。这时候我们就需要对代码进行修改,使其符合 lint-compacted
的检测规范。
总结
通过本篇文章,我们已经了解了 lint-committed
的安装,配置和使用方法。使用 lint-committed
可以帮助我们规范代码风格,提高代码质量,避免不必要的处理和卡顿。希望本篇文章对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600560bf81e8991b448df069