Git Hooks

    使用 Lint 会有什么好处呢?在我看来至少具有如下 3 点:

    • 更高的开发效率,Lint 很容易发现低级的、显而易见的错误

    但这样有一个问题,我们的 CI(持续集成) 往往不是仅仅只做 Lint工作,它还有会有很多其它的任务,这样就导致特别的浪费时间,往往可能需要几分钟之后你才会发现问题,或者有的时候你根本就没有发现你的 CI 没有跑通过。

    常见的流程:本地写好了代码,提交,开始跑 lint,发现不通过,本地修改代码,再提交,在等待 CI 的结果,若还有问题再重复之前的操作。

    然后修改 package.json,增加配置:

    最后尝试 Git 提交,你就会很快收到反馈:

    但这样会有一个问题,就是这次提交我可能只改了一个文件,比如我就改了 foo.js 的文件,但它依然会校验所有src 下面的.js文件,非常的不友好。导致的问题就是:我提交我写的代码,还先要帮人的代码问题解决了才能提交。

    然后,修改 package.json 配置:

    如上配置,每次它只会在你本地 commit 之前,校验你提交的内容是否符合你本地配置的 eslint规则(这个见文档 ),如果符合则提交成功。如果不符合它会自动执行 尝试帮你自动修复,如果修复成功则会帮你把修复好的代码提交,如果失败,则会提示你错误,让你修好这个错误之后才能允许你提交代码。

    最佳的 lint 规范流程就是推荐团队成员先在自己的编辑器中配置 eslint,在 webpack 中配置并开启 eslint-loader 错误提示,这样平时写的时候编辑器就能帮你修正一些简单的格式错误,同时提醒你有哪些不符合 lint 规范的的地方,并在命令行中提示你错误。这方面详细的内容见 ESLint

    原文: