Generator .eslintrc

Dalej

Ten generator tworzy gotową konfigurację .eslintrc.json na podstawie czterech wyborów: środowisko przeglądarki lub Node, obsługa TypeScript i obsługa React. Podpina eslint:recommended, odpowiednie wtyczki TypeScript lub React oraz kilka sensownych nadpisań reguł, dzięki czemu możesz wkleić wynik do swojego projektu.

Jak wygenerować konfigurację ESLint

  1. 1

    Wybierz środowisko

    Wybierz, czy kod działa w przeglądarce, w Node.js, czy w obu. Generator ustawia odpowiednie wpisy `env`, plus `es2022`.

  2. 2

    Włącz TypeScript

    Zaznacz TypeScript, a generator doda `@typescript-eslint/parser` i zalecaną wtyczkę TypeScript.

  3. 3

    Włącz React

    Zaznacz React, a generator doda `eslint-plugin-react` z jego zalecanym presetem.

  4. 4

    Generuj

    Kliknij przycisk, a konfiguracja zostanie utworzona jako czytelnie sformatowany JSON.

  5. 5

    Skopiuj do projektu

    Wklej wynik do `.eslintrc.json` i zainstaluj wtyczki, do których się odwołuje.

Co zawiera wygenerowana konfiguracja

Generator zawsze zaczyna od eslint:recommended i dodaje dokładnie to, co wynika z Twoich wyborów:

  • env z browser i/lub node, plus es2022
  • @typescript-eslint/parser i plugin:@typescript-eslint/recommended, gdy TypeScript jest włączony
  • plugin:react/recommended, gdy React jest włączony
  • no-console i no-unused-vars ustawione na warn

Wynik to zwykły obiekt JSON w klasycznym formacie .eslintrc.json, gotowy do wklejenia i rozbudowy o własne reguły.

Konfiguracja flat a starsza

ESLint 9 wycofał format .eslintrc.* na rzecz konfiguracji flat (eslint.config.js). Kluczowe różnice:

Aspekt Starsza (.eslintrc) Flat (eslint.config.js)
Format JSON, YAML albo CommonJS Moduł JavaScript ESM albo CommonJS
Rozszerzanie extends: ["plugin:react/recommended"] Rozproszenie do tablicy: ...reactPlugin.configs.recommended
Nadpisania Tablica overrides ze wzorcami glob Wiele obiektów w eksportowanej tablicy
Zmienne globalne env: { browser: true } languageOptions.globals z jawnymi importami
Ignorowanie Plik .eslintignore Pole ignores w tablicy konfiguracji

Nowe projekty powinny używać konfiguracji flat. Istniejące projekty mogą pozostać na starszej przez linię 10.x, ale migracja jest zalecana.

Ekosystem wtyczek

Typowe wtyczki projektu React/TS:

@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier

To sześć pakietów dla jednej umiarkowanie opiniotwórczej konfiguracji. Generator dodaje te, które wybierzesz, więc instalujesz tylko to, na co powołuje się konfiguracja.

Współistnienie z Prettier

Prettier zajmuje się formatowaniem; ESLint poprawnością i stylem wykraczającym poza formatowanie. Aby uniknąć konfliktów:

  1. Zainstaluj eslint-config-prettier i dodaj go jako OSTATNI element w extends/config.
  2. Wyłącza on każdą regułę ESLint kolidującą z wynikiem Prettier.
  3. Uruchamiaj Prettier osobno (przy zapisie w edytorze, w haku pre-commit, w CI).

Nie używaj eslint-plugin-prettier w nowych projektach; spowalnia ESLint, uruchamiając Prettier wewnątrz ESLint. Rozdziel oba narzędzia.

Wskazówki do dostrajania reguł

  • Zacznij luźno, dokręcaj stopniowo. Włączaj ostrzeżenia przed błędami.
  • Nadpisuj dla testów. Pliki testowe często potrzebują rozluźnionego no-unused-expressions i dostępnych globalnych Jest.
  • Nadpisuj dla skryptów. Skrypty buildowe mogą potrzebować globalnych Node bez dodawania env: node globalnie.
  • Dokumentuj nadpisania. Każde nadpisanie reguły zasługuje na komentarz wyjaśniający dlaczego.

Konfiguracja zgodna z twoim edytorem

VS Code wymaga zainstalowanego i skonfigurowanego rozszerzenia ESLint. Dodaj to do ustawień obszaru roboczego, aby uzyskać auto-naprawę przy zapisie:

{
  "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
  "eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}

Najczęściej zadawane pytania

Dla nowych projektów, konfiguracji flat (eslint.config.js). Ten generator zwraca klasyczny format .eslintrc.json, który ESLint czyta natywnie w trybie legacy; tabela porównawcza powyżej pokazuje, co się zmienia, jeśli migrujesz później.

Tak, jeśli używasz TypeScript. @typescript-eslint/parser oraz @typescript-eslint/eslint-plugin włączają linting świadomy TypeScript. Dla reguł świadomych typów (nie tylko składni) skonfiguruj też parser z project: './tsconfig.json'.

Zwykle przez brakujące zależności deweloperskie w CI. Upewnij się, że @typescript-eslint/*, wtyczki i wersja ESLint zgadzają się między lokalnym środowiskiem a CI. Używaj npm ci (nie npm install) w CI, by respektować plik blokady.

Nie. Twoje wybory służą tylko do wygenerowania konfiguracji; nie są zapisywane ani udostępniane osobom trzecim.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach