Skills Agentes

Migrate Oxlint

Guía para migrar un proyecto JavaScript/TypeScript de ESLint a Oxlint.

Oficial

Reemplaza a: ESLint

Estrellas
22.5k

en todo el repo

Actividad
43

0–100, la ruta de este skill

Actualizado
hace 3 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
2.5k tok

41 tok en reposo

Paquete
1 archivo

10 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add oxc-project/oxc --skill migrate-oxlint --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Corre 'npx @oxlint/migrate' para generar .oxlintrc.json a partir del config de ESLint
  • Mapea plugins de ESLint a sus equivalentes nativos de Oxlint (typescript, react, import, unicorn, etc.)
  • Usa --details para listar reglas que no se pudieron migrar automáticamente y decidir cómo tratarlas
  • Guía la instalación de oxlint y la migración manual de plugins locales o settings en overrides

Úsalo cuando

  • Se pide migrar, convertir o cambiar el linter de un proyecto JS/TS de ESLint a Oxlint

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Migra mi configuración de ESLint a Oxlint
    • Revisa qué reglas de ESLint no se pudieron migrar automáticamente
    • Instala oxlint y actualiza los scripts de CI

    SKILL.md

    En inglés

    This skill guides you through migrating a JavaScript/TypeScript project from ESLint to Oxlint.

    Overview

    Oxlint is a high-performance linter that implements many popular ESLint rules natively in Rust. It can be used alongside ESLint or as a full replacement.

    An official migration tool is available, and will be used by this skill: @oxlint/migrate

    Step 1: Run Automated Migration

    Run the migration tool in the project root:

    npx @oxlint/migrate
    

    This reads your ESLint flat config (eslint.config.js for example) and generates a .oxlintrc.json file from it. It will find your ESLint config file automatically in most cases.

    See options below for more info.

    Key Options

    Option Description
    --type-aware Include type-aware rules from @typescript-eslint (will require the oxlint-tsgolint package to be installed after migrating)
    --with-nursery Include experimental rules still under development, may not be fully stable or consistent with ESLint equivalents
    --js-plugins [bool] Enable/disable ESLint plugin migration via jsPlugins (default: enabled)
    --details List rules that could not be migrated
    --replace-eslint-comments Convert all // eslint-disable comments to // oxlint-disable
    --output-file <file> Specify a different output path (default: .oxlintrc.json)

    If your ESLint config is not at the default location, pass the path explicitly:

    npx @oxlint/migrate ./path/to/eslint.config.js
    

    Step 2: Review Generated Config

    After migration, review the generated .oxlintrc.json.

    Plugin Mapping

    The migration tool automatically maps ESLint plugins to oxlint's built-in equivalents. The following table is for reference when reviewing the generated config:

    ESLint Plugin Oxlint Plugin Name
    @typescript-eslint/eslint-plugin typescript
    eslint-plugin-react / eslint-plugin-react-hooks react
    eslint-plugin-import / eslint-plugin-import-x import
    eslint-plugin-unicorn unicorn
    eslint-plugin-jsx-a11y / eslint-plugin-jsx-a11y-x jsx-a11y
    eslint-plugin-react-perf react-perf
    eslint-plugin-promise promise
    eslint-plugin-jest jest
    @vitest/eslint-plugin vitest
    eslint-plugin-jsdoc jsdoc
    eslint-plugin-next nextjs
    eslint-plugin-node node
    eslint-plugin-vue vue

    Default plugins (enabled when plugins field is omitted): unicorn, typescript, oxc. Setting the plugins array explicitly overrides these defaults.

    ESLint core rules are usable in oxlint without needing to configure a plugin in the config file.

    Rule Categories

    Oxlint groups rules into categories for bulk configuration, though only correctness is enabled by default:

    {
      "categories": {
        "correctness": "error",
        "suspicious": "warn"
      }
    }
    

    Available categories: correctness (default: enabled), suspicious, pedantic, perf, style, restriction, nursery.

    Individual rule settings in rules override category settings.

    @oxlint/migrate will turn correctness off to avoid enabling additional rules that weren't enabled by your ESLint config. You can choose to enable additional categories after migration if desired.

    Check Unmigrated Rules

    Run with --details to see which ESLint rules could not be migrated:

    npx @oxlint/migrate --details
    

    Review the output and decide whether to keep ESLint for those rules or not. Some rules may be mentioned in the output from --details as having equivalents in oxlint that were not automatically mapped by the migration tool. In those cases, consider enabling the equivalent oxlint rule manually after migration.

    Step 3: Install Oxlint

    Install the core oxlint package (use yarn install, pnpm install, vp install, bun install, etc. depending on your package manager):

    npm install -D oxlint
    

    If you want to add the oxlint-tsgolint package, if you intend to use type-aware rules that require TypeScript type information:

    npm install -D oxlint-tsgolint
    

    No other packages besides the above are needed by default, though you will need to keep/install any additional ESLint plugins that were migrated into jsPlugins. Do not add @oxlint/migrate to the package.json, it is meant for one-off usage.

    Step 4: Handle Unsupported Features

    Some features require manual attention:

    • Local plugins (relative path imports): Must be migrated manually to jsPlugins
    • eslint-plugin-prettier: Supported, but very slow. It is recommended to use oxfmt instead, or switch to prettier --check as a separate step alongside oxlint.
    • settings in override configs: Oxlint does not support settings inside overrides blocks.
    • ESLint v9+ plugins: Not all work with oxlint's JS Plugins API, but the majority will.

    Local Plugins

    If you have any custom ESLint rules in the project repo itself, you can migrate them manually after running the migration tool by adding them to the jsPlugins field in .oxlintrc.json:

    {
      "jsPlugins": ["./path/to/my-plugin.js"],
      "rules": {
        "local-plugin/rule-name": "error"
      }
    }
    

    External ESLint Plugins

    For ESLint plugins without a built-in oxlint equivalent, use the jsPlugins field to load them:

    {
      "jsPlugins": ["eslint-plugin-custom"],
      "rules": {
        "custom/my-rule": "warn"
      }
    }
    

    Step 5: Update CI and Scripts

    Replace ESLint commands with oxlint. Path arguments are optional; oxlint defaults to the current working directory.

    # Before
    npx eslint src/
    npx eslint --fix src/
    
    # After
    npx oxlint src/
    npx oxlint --fix src/
    

    Common CLI Options

    ESLint oxlint equivalent
    eslint . oxlint (default: lints the cwd)
    eslint src/ oxlint src/
    eslint --fix oxlint --fix
    eslint --max-warnings 0 oxlint --deny-warnings or --max-warnings 0
    eslint --format json oxlint --format json

    Additional oxlint options:

    • --tsconfig <path>: Specify tsconfig.json path, likely unnecessary unless you have a non-standard name for tsconfig.json.

    Tips

    • You can run alongside ESLint if necessary: Oxlint is designed to complement ESLint during migration, but with JS Plugins many projects can switch over fully without losing many rules.
    • Disable comments work: // eslint-disable and // eslint-disable-next-line comments are supported by oxlint. Use --replace-eslint-comments when running @oxlint/migrate to convert them to // oxlint-disable equivalents if desired.
    • List available rules: Run npx oxlint --rules to see all supported rules, or refer to the rule documentation.
    • Schema support: Add "$schema": "./node_modules/oxlint/configuration_schema.json" to .oxlintrc.json for editor autocompletion if the migration tool didn't do it automatically.
    • Output formats: default, stylish, json, github, gitlab, junit, checkstyle, unix
    • Ignore files: .eslintignore is supported by oxlint if you have it, but it's recommended to move any ignore patterns into the ignorePatterns field in .oxlintrc.json for consistency and simplicity. All files and paths ignored via a .gitignore file will be ignored by oxlint by default as well.
    • If you ran the migration tool multiple times, remove the .oxlintrc.json.bak backup file created by the migration tool once you've finished migrating.
    • If you are not using any JS Plugins and have replaced your ESLint configuration, you can remove all ESLint packages from your project dependencies.
    • Ensure your editor is configured to use oxlint instead of ESLint for linting and error reporting. You may want to install the Oxc extension for your preferred editor. See https://oxc.rs/docs/guide/usage/linter/editors.html for more details.

    References

    Reproducido de oxc-project/oxc bajo licencia MIT. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere npx; para reglas type-aware necesita instalar oxlint-tsgolint después de migrar.

    Necesita en el PATH:npmnpx

    Detalles

    Licencia
    MIT
    Recursos incluidos
    Solo SKILL.md
    Repositorio
    oxc-project/oxc
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de oxc-project/oxc

    Este repo incluye 4 skills. Si instalas uno, normalmente ya tienes los demás.

    Guía para migrar un proyecto JavaScript/TypeScript de Prettier o Biome a Oxfmt.

    Costo de contexto al activarse
    2.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 11 días
    Oficialherramientas desarrollo

    Guía de rendimiento para implementaciones de reglas del linter de Oxc. Úsalo solo al revisar código Rust bajo crates/oxc_linter/src/rules/ o al auditar esas reglas explícitamente.

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo

    Guía para trabajar con y actualizar los tests de snapshot de insta en Oxc sin necesitar interacción con la terminal.

    Costo de contexto al activarse
    971 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 6 meses
    Oficialtesting qa

    Skills relacionados

    Guía para migrar un proyecto JavaScript/TypeScript de Prettier o Biome a Oxfmt.

    Costo de contexto al activarse
    2.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 11 días
    Oficialherramientas desarrollo

    Guía de rendimiento para implementaciones de reglas del linter de Oxc. Úsalo solo al revisar código Rust bajo crates/oxc_linter/src/rules/ o al auditar esas reglas explícitamente.

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo

    Guía para trabajar con y actualizar los tests de snapshot de insta en Oxc sin necesitar interacción con la terminal.

    Costo de contexto al activarse
    971 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 6 meses
    Oficialtesting qa