Я очень озадачен тем, как настроить файл конфигурации и какие конфиги / плагины мне следует использовать.
У меня есть проект React, который использует хуки Typescript, Jest и React.
Я знаю, что мне нужно установить:
eslint
prettier
, eslint-config-prettier
, eslint-plugin-prettier
eslint-plugin-import
Что касается конфигурации Airbnb, я не уверен, нужно ли мне устанавливать:
eslint-config-airbnb
, eslint-plugin-react
, eslint-plugin-jsx-a11y
или
eslint-config-airbnb-base
Похоже, что ни один из этих типов не поддерживает Typescript, поэтому мне кажется, что мне также нужно установить:
@typescript-eslint/eslint-plugin
, @typescript-eslint/parser
А для Jest мне нужно установить:
Я не уверен насчет React-хуков. Нужно ли устанавливать здесь что-нибудь дополнительное или один из других пакетов включает в себя его поддержку? Я вижу, что у меня есть возможность установки:
eslint-plugin-react-hooks
Это требуется?
Теперь для файла конфигурации есть две области, которые меня интересуют: extends
и plugins
.
Я вижу, что некоторые из этих пакетов могут быть расширены с помощью /recommended
. Должен ли я использовать какой-либо из них? Каким должен быть раздел extends
? Я видел примеры, где он устанавливает его как:
{
"extends": ["airbnb-base", "plugin:prettier/recommended"]
}
Хотя я видел другие примеры, которые используют:
{
"extends": ["airbnb", "prettier"]
}
И еще один пример, который использует:
{
"extends": [
"airbnb",
"plugin:prettier/recommended",
"prettier/react"
]
}
А как насчет других плагинов Typescript, Jest и React Hooks? Например, eslint-plugin-jest
предлагает добавить "plugin:jest/recommended"
к экстентам. Будет ли это конфликтовать с кем-либо из других? Я вижу, что я мог бы также добавить "plugin:@typescript-eslint/recommended"
и "prettier/@typescript-eslint"
. Они тоже должны быть включены?
Для раздела plugins
можно ли просто перечислить каждый пакет eslint-plugin-....
, который я установил?
Вот пример, пожалуйста, дайте мне знать, как это выглядит:
Установленные пакеты
@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint
eslint-config-airbnb
eslint-config-prettier
eslint-plugin-import
eslint-plugin-jest
eslint-plugin-jsx-a11y
eslint-plugin-prettier
eslint-plugin-react
eslint-plugin-react-hooks
prettier
Файл конфигурации:
{
"extends": [
"airbnb",
"plugin:@typescript-eslint/recommended",
"plugin:jest/recommended",
"plugin:prettier/recommended",
"plugin:react/recommended",
"prettier",
"prettier/@typescript-eslint"
],
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint",
"import",
"jest",
"jsx-a11y",
"react",
"react-hooks"
],
}