@babel/eslint-plugin
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
- 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
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 !).
- 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"
}
}
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.
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 expressionsdo -
@babel/object-curly-spacing: gère les déclarations d'export par défautexport 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.