Aller au contenu principal

@babel/eslint-plugin

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Règles complémentaires pour @babel/eslint-parser. @babel/eslint-parser excelle à adapter eslint pour Babel, mais ne peut modifier les règles natives pour supporter les fonctionnalités expérimentales. @babel/eslint-plugin réimplémente les règles problématiques pour éviter les faux positifs ou négatifs.

Nécessite Node.js 10.13 ou supérieur

Installation

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

Chargez le plugin dans votre configuration ESLint et activez toutes les règles souhaitées (n'oubliez pas de désactiver les règles originales également !).

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"
}
},
]);

Règles

Chaque règle correspond à une règle cœur de eslint et partage les mêmes options.

🛠 : signifie que la règle est auto-réparable avec --fix.

astuce

Avec ESLint 8 ou supérieur, vous pouvez utiliser les règles natives no-invalid-this et semi.

  • @babel/new-cap : gère les décorateurs (@Decorator)

  • @babel/no-undef : gère les propriétés d'accesseur de classe (class A { accessor x = 2 })

  • @babel/no-unused-expressions : gère les expressions do

  • @babel/object-curly-spacing : gère les déclarations d'export par défaut export x from "mod"; (🛠)

  • @babel/no-invalid-this : gère les champs de classe et méthodes privées (class A { a = this.b; }).

  • @babel/semi : Gère les propriétés de classe (🛠).

TypeScript

Bien que @babel/eslint-parser puisse analyser TypeScript, nous ne prenons actuellement pas en charge le linting TypeScript avec les règles de @babel/eslint-plugin. Cela s'explique par le fait que la communauté TypeScript s'est centrée autour de @typescript-eslint et que nous souhaitons éviter les doublons. De plus, comme @typescript-eslint utilise TypeScript en interne, ses règles peuvent être rendues conscientes des types, ce que Babel ne permet pas de faire.