ESLint 忽略特定目录的特定规则
Posted
技术标签:
【中文标题】ESLint 忽略特定目录的特定规则【英文标题】:ESLint ignore specific rule for a specific directory 【发布时间】:2017-05-10 01:13:38 【问题描述】:ESLint 是否可以忽略整个目录的特定规则?
就我而言,我想忽略 import/prefer-default-export
的目录名为 commonComponents
【问题讨论】:
这能回答你的问题吗? Disable eslint rules for folder @A-312 确实如此,但我认为这里的答案质量更好。 【参考方案1】:ESLint configuration (.eslintrc
) files 是分层的:
ESLint 将自动在要检查的文件的目录中查找它们,并在连续的父目录中一直查找到文件系统的根目录。当您希望项目的不同部分有不同的配置或希望其他人能够直接使用 ESLint 而无需记住传递配置文件时,此选项很有用。
您可以通过在该目录中创建具有以下内容的.eslintrc
文件来禁用commonComponents
目录的import/prefer-default-export
规则:
"rules":
"import/prefer-default-export": "off"
【讨论】:
您能告诉我您在哪里找到有关如何切换此规则的文档吗? eslint-plugin-import 文档没有帮助 @Dimitris 不确定你的意思。该规则具有no options,因此它只是根据ESLint documentation 进行的简单开/关。【参考方案2】:您还可以使用“overrides”键为不同的 glob 模式声明规则。
阅读Configuration Based on Glob Patterns
有时需要更精细控制的配置,例如,如果同一目录中的文件的配置必须不同。因此,您可以在仅适用于与特定 glob 模式匹配的文件的 overrides 键下提供配置,使用与在命令行中传递的相同格式(例如,app/**/*.test.js)。
我使用它从我的测试文件中删除no-unused-expressions
规则,如下所示;
"overrides": [
"files": [ "*.spec.js" ],
"rules":
"no-unused-expressions": 0
]
【讨论】:
这是最好的解决方案。每次我们想忽略已接受答案中的文件夹规则时,我们都不必添加新文件。【参考方案3】:如果您希望将规则应用到多个目录,那么您可以为不同的目的创建不同的配置。例如:
.eslintrc.json
通用配置
.eslintrc-main.json
用于主要 linting 并运行 eslint -c .eslintrc-main src test
.eslintrc-comp.json
用于组件并运行 eslint -c .eslintrc-comp commonComponents fooBarComponent
【讨论】:
【参考方案4】:YAML 版本:
rules:
no-unused-expressions: true
overrides:
- files: *-tests.js
rules:
no-unused-expressions: false
【讨论】:
【参考方案5】:cretae .eslintignore 文件并将您排除的文件夹放入其中。示例:
node_modules/
functions/
dist/
【讨论】:
这并不试图回答这个问题。以上是关于ESLint 忽略特定目录的特定规则的主要内容,如果未能解决你的问题,请参考以下文章