Я работаю над приложением React, и мне хотелось бы настроить линтер, чтобы я мог видеть все предупреждения / ошибки в консоли.

Документы мало что говорят: https: // create-response -app.dev/docs/setting-up-your-editor/

Я добавил EXTEND_ESLINT=true в свой файл .env.dev, и я также создал файл .eslintrc.json со следующим содержанием (взятым из документации):

{
  "eslintConfig": {
    "extends": ["react-app", "shared-config"],
    "rules": {
      "additional-rule": "warn"
    },
    "overrides": [
      {
        "files": ["**/*.ts?(x)"],
        "rules": {
          "additional-typescript-only-rule": "warn"
        }
      }
    ]
  }
}

Каждое правило, которое я пытаюсь добавить, ничего не делает, я все еще не вижу предупреждений в консоли и, кроме того, если я попытаюсь запустить линтер из командной строки:

npx eslint ./src

Я получаю следующую ошибку:

ESLint configuration in .eslintrc.json is invalid:
    - Unexpected top-level property "eslintConfig".

Чего мне не хватает?

0
ste 14 Сен 2020 в 18:47

2 ответа

Лучший ответ

Вы можете создать файл .eslintrc.js внутри папки src, используя следующий синтаксис:

module.exports = {
    extends: ["react-app", "shared-config"],
    rules: {
      "additional-rule": "warn"
    },
    overrides: [
      {
        "files": ["**/*.ts?(x)"],
        "rules": {
          "additional-typescript-only-rule": "warn"
        }
      }
    ]
  }

Или добавьте это в свой package.json (не в файл .eslintrc.json):

"eslintConfig": {
    "extends": ["react-app", "shared-config"],
    "rules": {
      "additional-rule": "warn"
    },
    "overrides": [
      {
        "files": ["**/*.ts?(x)"],
        "rules": {
          "additional-typescript-only-rule": "warn"
        }
      }
    ]
  }
1
Danilo Venticinque 14 Сен 2020 в 16:01

Вы можете просто добавить правила и конфигурации плагинов внутри package.json без создания переменных .eslintrc.json и env.

1
Kacper Witas 14 Сен 2020 в 15:55