使 ESLint 仅将规则应用于某些文件名模式

Posted

技术标签:

【中文标题】使 ESLint 仅将规则应用于某些文件名模式【英文标题】:Make ESLint apply rules to only certain file name patterns 【发布时间】:2015-12-07 20:24:05 【问题描述】:

是否可以将 ESLint 配置为仅将规则应用于名称与特定模式匹配的文件?我知道目录中可以有单独的规则表,但如果结构如下:

app
|
|- module1
|     |- module1.js
|     |- module1.spec.js
|
|- module2
|     |- module2.js
|     |- module2.spec.js

我想要一个仅适用于 *.spec.js 文件的项目范围的规则。 我希望有像

这样的设置
"include-pattern": "*.spec.js"

在 .eslintrc 或任何其他类似的方式中指定特定规则应考虑哪些文件名。

【问题讨论】:

【参考方案1】:

更新答案:

是的,现在有可能。在您的示例中,它可能看起来像


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

  "overrides": [
    
      "files": [ "app/module1/*.js" ],
      "excludedFiles": "*.spec.js",
      "rules": 
        "quotes": [ 2, "single" ]
      
    
  ]

您可以在eslint doc page阅读更多内容。

旧答案:

目前不支持此功能。但对于2.0.0 版本,我们正在积极开发此功能。

跟踪进度:https://github.com/eslint/eslint/issues/3611

【讨论】:

【参考方案2】:

临时解决方法是使用 .eslintignore 文件,里面有这样的内容:

*.js !*.spec.js

【讨论】:

【参考方案3】:

只需在你的 package.json 中创建一个“lint”脚本并附加你想要的任何模式:

"lint": "npx eslint src/**/*.ts test/**/*.ts",

然后npm run lint

我还创建了一个 bash 别名 alias n='npm run',所以 n lint 对我有用..

【讨论】:

以上是关于使 ESLint 仅将规则应用于某些文件名模式的主要内容,如果未能解决你的问题,请参考以下文章

允许调试器;某些文件中的语句,使用 ESLint

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

ESLint 规则在 Angular 中排除某些关键字和短语?

关闭特定文件的eslint规则

如何仅将特定的 CSS 规则应用于 Chrome?

覆盖子目录中的全局 eslint 配置规则