From 90a2e0514faadb5fbd1402b4374ed559d480d960 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 7 Feb 2024 05:49:51 +0300 Subject: [PATCH] add Readme --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..685bc08 --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +### Конфиг eslint, который поможет в написании как JavaScript приложений, так и приложений использующих Typescript и React + +### Список используемых плагинов: +* [`@stylistic/eslint-plugin`](https://eslint.style/rules) - [Rules](https://eslint.style/rules) +* [`eslint-plugin-import`](https://www.npmjs.com/package/eslint-plugin-import) [Rules](https://github.com/import-js/eslint-plugin-import/tree/main/docs/rules) +* [`@typescript-eslint/eslint-plugin`](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin) [Rules](https://typescript-eslint.io/rules/) +* [`eslint-plugin-jsx-a11y`](https://www.npmjs.com/package/eslint-plugin-jsx-a11y) [Rules](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/main/docs/rules) +* [`eslint-plugin-react`](https://www.npmjs.com/package/eslint-plugin-react) [Rules](https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules) +* [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) [Rules](https://legacy.reactjs.org/docs/hooks-rules.html#eslint-plugin) + +### Настройка + +Для подключения добавьте конфиг в файл конфигурации Eslint + +```js +extends: ["ksv741"] +``` + +либо можете точечно переопределить для каких файлов использовать конкретную часть конфигурации + +* `ksv741/js-base` - содержит правила для файлов `JavaScript` +* `ksv741/js-react` - содержит правила для файлов `JavaScript` и правила для `JSX` и `React` +* `ksv741/ts-base` - содержит правила для файлов `JavaScript` и правила для файлов `TypeScript` +* `ksv741/ts-react` - содержит правила для файлов `JavaScript`, `TypeScript`, `JSX` и `React` + +```js +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"] + } + ] +``` + +Для файлов, использующих конфигурацию `ksv741/ts-base` или `ksv741/ts-react` по умолчанию используется [`@typescript-eslint/parser`](https://www.npmjs.com/package/@typescript-eslint/parser) и [`eslint-import-resolver-typescript`](https://www.npmjs.com/package/eslint-import-resolver-typescript). +Но вы можете это переопределить, используя настройки плагина [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import?tab=readme-ov-file#importparsers) +Например, добавим настройку для использования [@babel/eslint-parser](https://www.npmjs.com/package/@babel/eslint-parser) и [eslint-import-resolver-webpack](https://www.npmjs.com/package/eslint-import-resolver-webpack) + +```js +{ + extends: ["ksv741"], + parser: "@babel/eslint-parser", + parserOptions: { + babelOptions: { + configFile: ".babelrc.js" + } + }, + settings: { + "import/resolver": { + webpack: { + config: "webpack.config.js" + } + } + } +} +```