Skip to content
chris edited this page Oct 29, 2015 · 15 revisions

FECS 自有规则

为了更准确的匹配到百度的前端代码规范,有部分规则是定制,或者修改官方的规则。

fecs-indent

基于 Nodeca Team 的插件,当时 eslint 还没有 indent 的实现。目前功能除了与官方一致外(配置参数有区别),还针对数组拼接 HTML 时的缩进作了处理。

fecs-valid-jsdoc

在官方 valid-jsdoc 基本上增强:

  • 文档注释前面要有一个空行;
  • 检查 @file 和 @author;
  • 针对 RestElement 参数的注释类型检查;
  • 内置类型的大小写严格检查;
  • 不同的错误信息有不同的标识,便于 reporter 归类到不同的错误;
  • 所有错误信息包含具体的行列位置,包含异常(来自 doctrine2,对 doctrine 的 hack)。

fecs-max-statements

在官方的基础上,针对 AMD 模块的 factory 作豁免。

fecs-key-spacing

在配置冒号前不允许空格情况下,识别并允许基于冒号对齐情况。

fecs-eol-last

增加一个配置项 disallowMultiBlankLine,用于设置是否允许文件末尾连续空白行的情况。

fecs-camelcase

在官方 camelcase 项目上的增强:

  • 允许标识符前后的 --(比如 __dirname);
  • 允许通过 quote 配置项对 Property 类型的标识符作豁免;
  • 允许配置 ignore 数组来作豁免,支持前后使用 / 标识为正则的匹配;
  • 允许使用文档注释的 @private 对单个下划线前缀的方法作豁免。

fecs-space-infix-ops

fecs-dot-notation

fecs-no-reserved-keys

以上三个规则全部基于官方的基础上,是作了更准备的报错位置调整,见 issue 46

fecs-properties-quote

根据百度前端代码规则实现:

[强制] 对象创建时,如果一个对象的所有 属性 均可以不添加引号,则所有 属性 不得添加引号。 [强制] 对象创建时,如果任何一个 属性 需要添加引号,则所有 属性 必须添加 '

fecs-no-eval

在官方规则的增加了 window.eval 的使用检查。

[建议] 尽量避免使用 eval 函数。

fecs-no-forin-array

[强制] 遍历数组不使用 for in

fecs-no-global-require

[强制] 模块定义中只允许使用 local require,不允许使用 global require

fecs-valid-amd-id

[强制] 模块 id 必须符合标准。

fecs-jsx-var

根据 jsx 的特点,对 jsx 中出现的标签名或属性将作用域中的同名变量标记为已使用。

Clone this wiki locally