eslint-config-ksv741
Конфиг eslint для JavaScript, TypeScript, React, Jest
Содержание
Установка
npm
npm install --save-dev eslint-config-ksv741
yarn
yarn add --dev eslint-config-ksv741
pnpm
pnpm add --save-dev eslint-config-ksv741
Использование
Для подключения - добавьте конфиг в файл конфигурации Eslint
extends: ["ksv741"]
Доступны следующие конфиги:
ksv741/js-base- содержит правила для файловJavaScriptksv741/js-react- содержит правила для файловJavaScriptи правила дляJSXиReactksv741/ts-base- содержит правила для файловJavaScriptи правила для файловTypeScriptksv741/ts-react- содержит правила для файловJavaScript,TypeScript,JSXиReactksv741/jest- содержит правила дляJestksv741- содержит правила для файловJavaScript,TypeScript,JSX,React,Jest- Рекомендуется использовать
Настройка
Можно точечно переопределить для каких файлов использовать определенный конфиг
overrides: [
{
files: ["*.js"],
extends: ["ksv741/js-base"]
},
{
files: ["*.jsx"],
extends: ["ksv741/js-react"]
},
{
files: ["*.ts"],
extends: ["ksv741/ts-base"]
},
{
files: ["*.tsx"],
extends: ["ksv741/ts-react"]
},
{
files: [
"**/__tests__/**/*.[jt]s?(x)",
"**/?(*.)+(spec|test).[jt]s?(x)"
],
extends: ["ksv741/jest"]
}
]
Кастомизация
Для файлов, использующих конфигурацию ksv741/ts-base или ksv741/ts-react по умолчанию используется @typescript-eslint/parser и eslint-import-resolver-typescript.
Но вы можете это переопределить, используя настройки плагина eslint-plugin-import
Например, добавим настройку для использования @babel/eslint-parser и eslint-import-resolver-webpack
{
extends: ["ksv741"],
parser: "@babel/eslint-parser",
parserOptions: {
babelOptions: {
configFile: ".babelrc.js"
}
},
settings: {
"import/resolver": {
webpack: {
config: "webpack.config.js"
}
}
}
}
ВНИМАНИЕ
Для проектов использующих TypeScript предустановлены @typescript-eslint/parser и eslint-import-resolver-typescript.
Алиасы путей обычно хранятся в настройке paths файла tsconfig.json
По умолчанию, для файлов .js, .jsx не предустановлен парсер и плагин для разрешения путей,
т.к. в зависимости от проекта инструменты могут значительно отличаться,
предполагается что эта настройка будет установлена самостоятельно.
Плагины:
@stylistic/eslint-plugin- Ruleseslint-plugin-importRules@typescript-eslint/eslint-pluginRuleseslint-plugin-jsx-a11yRuleseslint-plugin-reactRuleseslint-plugin-react-hooksRuleseslint-plugin-jestRuleseslint-plugin-jest-domRuleseslint-plugin-jest-formattingRuleseslint-plugin-testing-libraryRules