Skip to content

Oxlint JS Plugins Preview

Esta publicación anuncia la versión preliminar de los complementos de Oxlint JS. ¡Los plugins de JS han alcanzado el alfa! Ver el Oxlint JS Plugins Alpha announcementEsta publicación anuncia la versión preliminar de los complementos de Oxlint JS. ¡Los plugins de JS han alcanzado el alfa! Consulte el anuncio de Oxlint JS Plugins Alpha para conocer las últimas funciones y mejoras.


A principios de este año we asked for input from the communityA principios de este año pedimos la opinión de la comunidad para informar el diseño del soporte de Oxlint para plugins JS personalizados. Hoy, nos complace anunciar el resultado de muchos meses de investigación, creación de prototipos y, finalmente, la construcción de:

Oxlint supports plugins written in JS!

Key features

  • API de complemento compatible con ESLint. Oxlint podrá ejecutar muchos complementos ESLint existentes sin modificaciones.
  • Una API alternativa que es ligeramente diferente y desbloquea un mejor rendimiento.

What this is and isn't

Esta versión preliminar es solo el comienzo. Es importante tener en cuenta que:

  • Esta versión inicial no implementa toda la API del plugin de ESLint.
  • El rendimiento es bueno, pero va a mejorar: tenemos muchas optimizaciones en proceso.

Las API más utilizadas para las reglas de verificación de código are implementedLas API más utilizadas para las reglas de verificación de código están implementadas, por lo que muchas reglas ESLint existentes ya funcionarán. Pero las API relacionadas con los tokens están ausentes, por lo que las reglas estilísticas (de formato) no lo harán.

Invitamos a los usuarios a dar una vuelta, dar su opinión e informar nuestras prioridades para la siguiente fase de desarrollo.

This blog post covers

  1. Cómo usarlo. 2. Lo que viene a continuación. 3. Algunos de los detalles técnicos que permiten nuestro enfoque de "tener pastel y comérselo" de proporcionar compatibilidad ESLint y excelente rendimiento.

Quick Start

Install Oxlint in your project:

sh
pnpm add -D oxlint
`````````json
// .oxlintrc.json
{
  "jsPlugins": ["./plugin.js"],
  "rules": {
    "best-plugin-ever/no-debugger": "error"
  }
}
`````````sh
pnpm oxlint
`````````js
const rule = {
  create(context) {
    let classCount = 0;

    return {
      ClassDeclaration(node) {
        classCount++;
        if (classCount === 6) {
          context.report({ message: "Too many classes", node });
        }
      },
    };
  },
};
`````````diff
- const rule = {
+ const rule = defineRule({
`````````diff
-     let classCount = 0;
+     let classCount;

      return {
+       before() {
+         classCount = 0; // Reset counter
+       },
        ClassDeclaration(node) {
          classCount++;
          if (classCount === 6) {
            context.report({ message: "Too many classes", node });
          }
        },
      };
    },
  });