@babel/eslint-plugin
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Reglas complementarias para @babel/eslint-parser. @babel/eslint-parser hace un excelente trabajo adaptando eslint
para uso con Babel, pero no puede modificar las reglas nativas para admitir características experimentales.
@babel/eslint-plugin reimplementa reglas problemáticas para evitar falsos positivos o negativos.
Requiere Node.js 10.13 o superior
Instalación
- 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
Carga el plugin en tu configuración de ESLint y activa todas las reglas que quieras usar (¡recuerda deshabilitar también las originales!).
- 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"
}
}
Reglas
Cada regla corresponde a una regla central de eslint y tiene las mismas opciones.
🛠: significa que es auto-corregible con --fix.
En ESLint 8 o superior, puedes usar las reglas nativas no-invalid-this y semi.
-
@babel/new-cap: maneja decoradores (@Decorator) -
@babel/no-undef: maneja propiedades de acceso de clase (class A { accessor x = 2 }) -
@babel/no-unused-expressions: maneja expresionesdo -
@babel/object-curly-spacing: maneja declaraciones export default comoexport x from "mod";(🛠) -
@babel/no-invalid-this: maneja campos de clase y métodos privados de clase (class A { a = this.b; }). -
@babel/semi: Maneja propiedades de clase (🛠).
TypeScript
Aunque @babel/eslint-parser puede analizar TypeScript, actualmente no admitimos la verificación de TypeScript usando las reglas de @babel/eslint-plugin. Esto se debe a que la comunidad de TypeScript se ha centrado en @typescript-eslint y queremos evitar trabajo duplicado. Además, dado que @typescript-eslint utiliza TypeScript internamente, sus reglas pueden ser conscientes de tipos, algo que Babel no puede hacer.