Vai al contenuto principale

@babel/eslint-plugin

Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

Regole complementari per @babel/eslint-parser. @babel/eslint-parser svolge un ottimo lavoro nell'adattare eslint all'uso con Babel, ma non può modificare le regole integrate per supportare funzionalità sperimentali. @babel/eslint-plugin reimplementa le regole problematiche per evitare falsi positivi o negativi.

Richiede Node.js 10.13 o superiore

Installazione

npm install @babel/eslint-plugin --save-dev

Carica il plugin nella tua configurazione ESLint e abilita tutte le regole che desideri utilizzare (ricordati di disabilitare anche quelle originali!).

import babelParser from "@babel/eslint-parser";
import babelPlugin from "@babel/eslint-plugin";
import { defineConfig } from "eslint/config";

export default defineConfig([
{
files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
languageOptions: {
parser: babelParser,
},
plugins: {
babel: babelPlugin
},
rules: {
"new-cap": "off",
"no-undef": "off",
"no-unused-expressions": "off",
"object-curly-spacing": "off",

"babel/new-cap": "error",
"babel/no-undef": "error",
"babel/no-unused-expressions": "error",
"babel/object-curly-spacing": "error"
}
},
]);

Regole

Ogni regola corrisponde a una regola core di eslint e ha le stesse opzioni.

🛠: indica che è correggibile automaticamente con --fix.

consiglio

Su ESLint 8 o superiore, puoi utilizzare le regole integrate no-invalid-this e semi.

  • @babel/new-cap: gestisce i decoratori (@Decorator)

  • @babel/no-undef: gestisce le proprietà di accesso delle classi (class A { accessor x = 2 })

  • @babel/no-unused-expressions: gestisce le espressioni do

  • @babel/object-curly-spacing: gestisce la dichiarazione export default export x from "mod"; (🛠)

  • @babel/no-invalid-this: gestisce i campi delle classi e i metodi privati (class A { a = this.b; }).

  • @babel/semi: Gestisce le proprietà delle classi (🛠).

TypeScript

Sebbene @babel/eslint-parser possa analizzare TypeScript, attualmente non supportiamo il linting di TypeScript utilizzando le regole di @babel/eslint-plugin. Questo perché la comunità TypeScript si è concentrata su @typescript-eslint e vogliamo evitare duplicazioni del lavoro. Inoltre, poiché @typescript-eslint utilizza TypeScript internamente, le sue regole possono essere rese consapevoli dei tipi, una capacità che Babel non possiede.