【问题标题】:How can I ignore all files without an extension in eslint如何在 eslint 中忽略所有没有扩展名的文件
【发布时间】:2021-06-03 19:02:38
【问题描述】:

目前在我的 .eslintignore 中有以下内容:

**/*.json
**/*.svg
**/*.bat
**/*.sh
**/*.html
**/*.png
**/*.txt
**/*.ico
**/*.md

如何防止 eslint 对没有扩展名的文件进行 linting?例如,我的一些 docker 文件没有扩展名,我不想明确列出它们。

【问题讨论】:

  • 为什么 ESLint 会提取这些文件?最好的解决方案是只告诉 ESLint 搜索与您使用的 JavaScript 扩展名匹配的文件(例如 ts、tsx、js、hsx、cjs、mjs),而不是告诉它查找所有内容,然后忽略特定的扩展名
  • 在覆盖部分这样做:覆盖:[{files:['.ts', '.tsx', ect...]}] 我是缺少什么?
  • 是的,您可以在覆盖部分使用它或使用--ext 命令行选项
  • 看看this example file here。你可以使用一个空的 overrides 块来定义 eslint 应该使用的扩展。你不需要给overrides添加规则,通过CLI调用eslint时也不需要添加eslintignore或者使用glob模式。
  • 试一试:覆盖:[{files: ['*/.{ts,tsx,scss,js}']}] 仍然无法正常工作,必须在某个地方可能会覆盖其他一些配置吗?不过感谢您的想法!

标签: reactjs eslint


【解决方案1】:

最好的解决方案是只告诉 ESLint 搜索与您使用的 JavaScript 扩展名匹配的文件(例如ts,tsx,js,jsx,cjs,mjs),而不是告诉它查找所有内容,然后忽略特定的扩展名。

要告诉 ESLint 添加扩展,可以使用--ext 命令行选项,或者使用overrides 配置,如下所示:

.eslintrc.js

module.exports = {
  // [Your config here...]
  // Empty overrides block that lists your globs for the 
  overrides: [
    {
      files: ["**/*.{ts,tsx,js,jsx}"]
    }
  ]
};

然后确保您通过在您的 lint 脚本中使用 eslint ./eslint ./src 告诉 ESLint 您要 lint 的路径,而不使用扩展名的 glob 模式,因为例如运行 eslint ** 将加载每个文件扩展名。

package.json

{
  "name": "example",
  "version": "1.0.0",
  "scripts": {
    "lint": "eslint ./"
  }
}

完成这些更改后,您应该不再需要 ESLint 忽略文件来禁用常见的文件扩展名。

【讨论】:

  • 将脚本定义从 "eslint **" 更改为 "eslint ./" 成功了,不再需要覆盖。虽然不太明白为什么,但非常感谢!
猜你喜欢
  • 2013-05-07
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
相关资源
最近更新 更多