ESLint仅针对特定目录(eslintrc,create-react-app)

Dus*_*ise 3 reactjs eslint airbnb-js-styleguide create-react-app eslintrc

我有一个类似于以下的文件夹结构:

/root
 .eslintrc.json
 package.json
 /someFolder
   /sub
   /sub
 /anotherFolder
 /src
   /containers
   /components
 /oneMoreFolder
   /sub
   /sub
Run Code Online (Sandbox Code Playgroud)

我正在使用create-react-app并正在使用airbnb规则。我已经能够从CLI轻松地在特定文件夹中运行linter,但在编译时,它针对所有文件夹。

我只想在/ src文件夹中的文件上运行linter 。

我该怎么办?我已经尝试了多种解决方案。

谢谢!

TL:DR使用eslint和create-react-app时,如何只针对一个子文件夹及其所有文件进行编译?

Vah*_*hid 8

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

{
  "ignorePatterns": ["gulpfile.js", "gulp/**/*", "webpack.config.js"]
}
Run Code Online (Sandbox Code Playgroud)

您也可以使用该.eslintignore文件。


Hoz*_*efa 6

您需要做类似的事情eslint src/**/*.js[x]。如果您正在运行的webpack构建(或预提交钩子)会进行linting检查,则将其添加到里面的scripts对象中package.json

  • 如何通过 .eslintrc.json 文件限制这一点? (3认同)
  • @Vahid 如果您想忽略某些文件,我建议使用“.eslintignore”。另一种方法是在运行“eslint”命令时使文件路径更加紧凑。`eslintrc` 文件应该用于设置配置。https://github.com/eslint/eslint/blob/master/.eslintignore (2认同)

Jal*_*lal 6

在你里面 .eslintrc.json

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

  "overrides": [
    {
      "files": [ "src/**/*.js" ],
      "rules": {
        "quotes": [ 2, "single" ]
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

.eslintignore

 /someFolder
 /anotherFolder
 /oneMoreFolder
Run Code Online (Sandbox Code Playgroud)

  • 正如其他人提到的,您可以在 eslintrc 文件中使用 `"ignorePatterns": ["/someFolder", ...]` 。这使您可以将所有内容保存在一个地方。 (2认同)

小智 5

在您编写运行 lint 的脚本的地方package.json,仅提及您想要定位的文件夹

scripts:{"lint": "eslint src public"}
Run Code Online (Sandbox Code Playgroud)

然后,如果您想忽略相应文件夹中的某些类型的文件,您可以在 ESLint 配置文件中提及。