@babel/eslint-plugin
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
- Yarn
- pnpm
- Bun
npm install @babel/eslint-plugin --save-dev
yarn add @babel/eslint-plugin --dev
pnpm add @babel/eslint-plugin --save-dev
bun add @babel/eslint-plugin --dev
Carica il plugin nella tua configurazione ESLint e abilita tutte le regole che desideri utilizzare (ricordati di disabilitare anche quelle originali!).
- eslint.config.js
- .eslintrc.json
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"
}
},
]);
{
"plugins": ["@babel"],
"rules": {
"new-cap": "off",
"no-invalid-this": "off",
"no-undef": "off",
"no-unused-expressions": "off",
"object-curly-spacing": "off",
"semi": "off",
"@babel/new-cap": "error",
"@babel/no-invalid-this": "error",
"@babel/no-undef": "error",
"@babel/no-unused-expressions": "error",
"@babel/object-curly-spacing": "error",
"@babel/semi": "error"
}
}
Regole
Ogni regola corrisponde a una regola core di eslint e ha le stesse opzioni.
🛠: indica che è correggibile automaticamente con --fix.
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 espressionido -
@babel/object-curly-spacing: gestisce la dichiarazione export defaultexport 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.