基于文件扩展名的不同 eslint 规则

Posted

技术标签:

【中文标题】基于文件扩展名的不同 eslint 规则【英文标题】:Different eslint rules based on file extension 【发布时间】:2017-07-20 06:12:22 【问题描述】:

是否可以根据文件扩展名对文件应用不同的规则?例如,我的源代码中有 [test].spec.js 测试规范文件,但我喜欢添加仅适用于它们的规则。

【问题讨论】:

【参考方案1】:

这是添加的。文档here

文档中的示例


  "rules": 
    "quotes": [ 2, "double" ]
  ,

  "overrides": [
    
      "files": [ "bin/*.js", "lib/*.js" ],
      "excludedFiles": "*.test.js",
      "rules": 
        "quotes": [ 2, "single" ]
      
    
  ]

您可以有效地提供 glob 和一组规则,覆盖匹配每个 glob 的文件的默认规则。

【讨论】:

我讨厌的是,现在没有办法分享规则了。 其实nvm,我想办法了:你可以在overrides部分添加一个新对象,包含所有文件扩展名,然后在这个对象中定义你的规则【参考方案2】:

目前这是不可能的,除非您创建多个配置文件并为每种文件类型分别使用正确的 glob 运行 eslint。但是,这里有一个公开的 PR:https://github.com/eslint/eslint/pull/8081 添加此功能。

【讨论】:

自 4.1.0 起可用:github.com/eslint/eslint/releases/tag/v4.1.0

以上是关于基于文件扩展名的不同 eslint 规则的主要内容,如果未能解决你的问题,请参考以下文章

使用 eslint-config-airbnb 扩展名为“.js”的文件中不允许使用 JSX

eslint检测语法+前端代码规范化

如何同时使用不同的 eslint 配置 lint JS 和 TS 文件?

使用 eslint-config-airbnb 后“./reducer”错误缺少文件扩展名“tsx”

React ESLint Config“意外的文件扩展名JSX”

在哪里可以找到“eslint:recommended”的规则定义?