3

问题

我的 VS Code PROBLEMS 窗格中有一堆来自 eslint 的“问题”,抱怨我的.eslintrc. 在 VS Code 之外检查目录不会显示.eslintrc问题。我的.eslintrc.eslintignore文件在我的工作区目录中(与我的目录相同的位置.vscode

我尝试过的事情

我尝试将以下条目添加到我的.eslintignore文件中:

  1. **/.*
  2. **/.eslintrc
  3. .eslintrc
  4. ./.eslintrc

但是它们都没有阻止 VS Code 在文件编辑器和问题窗格中显示错误。

我已将.eslintrcVS Code 中的排除文件设置添加到,然后在问题窗格中激活排除文件过滤器,但我不想从 EXPLORER 窗格中隐藏文件。

问题

如何强制 VS Code/ESLint/vscode-eslint/罪魁祸首.eslintrc在 VS Code 内部进行 linting 时忽略我?

.eslintrc

{
  extends: 'airbnb',
  parser: 'babel-eslint',
  plugins: [
    'react',
    'jest',
  ],
  env: {
    browser: true,
    node: true,
    es6: true,
    jest/globals: true,
  },
  globals: {
    LOGGING_ENDPOINT: false,
    $: false,
    beautify: false,
    testContext: false,
    page: false,
  },
  settings: {
    react: {
      pragma: 'h',
    },
  },
  rules: {
    import/no-extraneous-dependencies: 'off',
    import/no-unresolved: ['error', { ignore: ['^react$', '^react-dom$'] }],
    import/extensions: 'off',
    react/react-in-jsx-scope: 'off',
    no-underscore-dangle: 'off',
    react/no-danger: 'off',
    no-unused-vars: ['error', { varsIgnorePattern: 'React' }],
    react/require-default-props: 'off',
    function-paren-newline: 'off',
    import/no-named-as-default: 'off',
    object-curly-newline: 'off',
    jest/no-focused-tests: 'error',
  },
}

谢谢!

解决方案

问题是我.eslintrc的格式是一种奇怪的 JSON 格式,当 ESLint 读得很好时,VS Code 告诉我所有的问题。一旦我将其正确格式化为 JSON,VS Code 就不再抱怨了。

4

1 回答 1

4

我认为您的问题与 VS Code 而不是 ESLint 最相关。

.eslintrc文件用于为 ESLint 设置规则和配置。

您可以打开您的 VS Code 用户设置或工作区设置(Ctrl+ Shift+ P> 首选项:打开用户设置),并添加一些规则以便 VS Code 可以忽略某些文件,例如

  "eslint.options": {
    "extensions": [".js", ".jsx"]
  },
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
  ],

查看有关vscode-eslint扩展的更多详细信息。


此外,如果您想在保存文件时添加自动修复,您可以将以下内容添加到您的用户/工作区设置中:

  "files.autoSave": "off",
  "editor.formatOnSave": true,
  "eslint.autoFixOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll": true,
    "source.organizeImports": true
  },
于 2019-03-14T20:06:13.890 回答