基于文件扩展名的不同 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 配置 lint JS 和 TS 文件?
使用 eslint-config-airbnb 后“./reducer”错误缺少文件扩展名“tsx”