Saltar al contenido principal

@babel/eslint-plugin

Traducción Beta No Oficial

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 install @babel/eslint-plugin --save-dev

Carga el plugin en tu configuración de ESLint y activa todas las reglas que quieras usar (¡recuerda deshabilitar también las originales!).

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

Reglas

Cada regla corresponde a una regla central de eslint y tiene las mismas opciones.

🛠: significa que es auto-corregible con --fix.

consejo

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 expresiones do

  • @babel/object-curly-spacing: maneja declaraciones export default como export 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.