ESLint只针对特定目录(eslintrc,create-react-app)进行检测

38

我有一个类似于这样的文件夹结构:

/root
 .eslintrc.json
 package.json
 /someFolder
   /sub
   /sub
 /anotherFolder
 /src
   /containers
   /components
 /oneMoreFolder
   /sub
   /sub
我正在使用create-react-app并应用airbnb规则。我已经能够从CLI轻松地在特定文件夹中运行linter,但在编译时,它会针对所有文件夹。
我希望仅在编译时对/src文件夹中的文件运行linter。
我该怎么做?我尝试了许多解决方案。
谢谢!
TL:DR如何在使用eslint和create-react-app时只针对一个子文件夹及其所有文件进行编译目标?
4个回答

32

在你的 .eslintrc.json 内部

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

  "overrides": [
    {
      "files": [ "src/**/*.js" ],
      "rules": {
        "quotes": [ 2, "single" ]
      }
    }
  ]
}

.eslintignore 文件中

 /someFolder
 /anotherFolder
 /oneMoreFolder

2
正如其他人所提到的,你可以在eslintrc文件中使用"ignorePatterns": ["/someFolder", ...]。这样可以让它们都放在同一个地方。 - Ryan Wheale

21

我使用了 ignorePatterns 选项。它告诉 ESLint 忽略特定的文件和目录。当你的 IDE(例如 VS Code)在不需要的文件中报告错误时,这是非常有用的。

{
  "ignorePatterns": ["gulpfile.js", "gulp/**/*", "webpack.config.js"]
}
你也可以使用.eslintignore文件。

14

你需要执行类似于 eslint src/**/*.js[x] 的操作。如果你正在运行一个执行代码检查的 webpack 构建(或 precommit 钩子),则需要将它添加到 package.json 中的 scripts 对象中。


1
当我运行这个命令时,我得到了一个错误,说没有路径匹配该格式。我尝试了这个命令:eslint src/**/*.{js,jsx},结果成功了。 - Chris Sandvik
3
我该如何通过 .eslintrc.json 文件来限制它? - Vahid
2
@Vahid 我建议使用 .eslintignore 来忽略某些文件。另一种方法是在运行 eslint 命令时使文件路径更紧密。应该使用 eslintrc 文件来设置配置。 https://github.com/eslint/eslint/blob/master/.eslintignore - Hozefa

5

如果你在package.json中编写了运行lint的脚本,那么只需提及你要定位的文件夹即可。

scripts:{"lint": "eslint src public"}

如果你想忽略某些文件类型在相应的文件夹中,可以在ESLint配置文件中进行指定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接