Skip to content
chris edited this page Nov 7, 2014 · 10 revisions

ESLint

FECSJavaScript 检查是基于 ESLint 结合我们的 JavaScript 编码规范,配置了一些默认的参数,以检查代码中可能存在的质量问题。

使用方式

最常用的方式就是直接调用fecs,此时会递归的扫描当前目录下面的所有的 JavaScript、CSS 和 HTML 文件(默认已经忽略 node_modules, asset, dist, release, doc, dep 目录),然后依次调用 ESLint 检查得到的 JavaScript 文件。

如果想要忽略某些文件或目录,可以使用 ignore 参数执行,例如:

$ fecs --ignore='/cli/'

后续将会考虑支持类似 Git 方式的 .gitignore 文件来配置忽略规则。

另外,需要同时检查多个目录时,可以这样:

$ fecs dir1 dir2

可以指定只检查 JavaScript 文件:

$ fecs dir1 --type=js

如果嫌默认出的英文提示不易懂,或者需要看我们对应的规范定义,可以指定 reporter 参数为 baidu

$ fecs --reporter=baidu

默认规则

  1. http://eslint.org/docs/rules/
  2. https://github.com/ecomfe/fecs/blob/master/lib/js/eslint.json

由于部分规则 ESLint 未实现(如缩进的 indent 和 单 var 定义多个变量的 disallow-multi-var)或实现得太粗旷或有 Bug(如检查 JSDoc3 注释的 valid-jsdoc)等,我们在 FECS 作了修改版,此类规则在配置文件中的表现是多了 fecs- 前缀。如果想查看检查结果对应的规则名称,可以在执行时使用 rule 参数:

$ fecs --rule

如何针对检查结果作修复

ESLint 大部分给出的是关于代码风格或有安全隐患方面的问题,一般没有特殊情况的话,还是全部都修复掉。当然,规范并非不能打破,理由充分的话,可以自行配置忽略某部分代码的问题。

后续将会持续改进 jformatter,以便通过 fecs format 调用时自动修复大部分错误。

项目级别

可以在项目根目录创建 .eslintrc 文件,配置项将会覆盖 FECS 的默认值。FECS 默认针对的是 Web 项目,对于 node 项目,需要更改的配置如下:

{
    "env": {
        "node": true,
        "browser": false
    },

    "rule": {
        "no-console": 0
    }
}

文件级别

如果只是某些文件需要 特殊照顾,可以在文件头使用 /* eslint-disable ruleName */ 来配置。

/* eslint-env node */
/* eslint-disable no-console */

文件中代码

部分代码的解决方式与文件类似,但是在代码结束的地方需要再恢复规则。

/* eslint-disable fecs-max-statements */

//
// 这里是不可分割的算法代码,但是超出默认的 50 statement
//

/* eslint-enable fecs-max-statements */

更多配置方式

https://github.com/eslint/eslint/blob/master/docs/configuring/README.md

Clone this wiki locally