简介
eslint-pre-commit-diff-en 是一个 npm 包,它可以在 git 的 pre-commit 阶段运行 ESLint 检查,以避免提交包含语法错误或风格不一致的代码。同时,这个包还提供了一个命令行工具,可以检查当前更改的文件和上一次提交的文件之间的差异,使得我们只需要检查修改的代码,而不是整个文件。
安装
在项目根目录下安装 eslint-pre-commit-diff-en:
npm install --save-dev eslint-pre-commit-diff-en
同时,也需要安装 eslint:
npm install --save-dev eslint
配置
修改 package.json,添加以下配置:
-- -------------------- ---- ------- - ---------- - ------------- --------------------------- -- --------------- - ---------- --------------------- -------- - ------- -------- ------------- ------- - - -
其中, "pre-commit" 对应 git pre-commit 阶段的钩子操作,通过执行 eslint-pre-commit-diff-en 命令来实现代码检查。eslintConfig 则是 ESLint 的配置文件,可以根据自己的需求添加更多规则。
使用
使用 git commit 命令提交代码时,就会自动触发 eslint-pre-commit-diff-en 的检查:
git commit -m "xxx"
如果代码不符合规定的规则,那么 git commit 命令就会被拦截,同时输出错误提示信息。此时需要修复代码,然后再次执行 git commit 命令。
同时,也可以使用 diff 命令检查当前更改的文件和上一次提交的文件之间的差异:
npm run diff
这个命令会列出所有被修改的文件,然后在当前目录下创建一个 .temp 文件夹,将这些文件复制到 .temp 文件夹下。然后执行 ESLint 检查,输出错误提示信息。
示例代码
以下是一个示例代码,它违反了我们规定的 ESLint 规则:
function sum(a, b){ console.log(a+b) }
当我们执行 git commit 命令时,就会得到以下错误提示信息:
-- -------------------- ---- ------- -------- ------ ----- ---- --------- --------------------- --- ----- ------- --------- ---- --- ----- ---------- ------- --------- ---------- - - -------- -- ------- - --------- --- ---- ---- ---------- --- ---- ----- - --- ---- --------- ----------- --------------------------- --- ---- ---- ------ - --- ---- --- ---- ------ -- --- -------- ---------- ------- --- ---- ---- -- -------- --- - ------- ---- ---- ----- -- ------ ---------- ------- ------ ------
因此,我们需要加上分号,并删除 console.log(),以使代码符合规定的 ESLint 规则:
function sum(a, b) { return a + b; }
现在再次执行 git commit 命令,就不会出现错误提示信息了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005665681e8991b448e27ab