migrate-oxlint

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

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "migrate-oxlint" with this command: npx skills add oxc-project/oxc/oxc-project-oxc-migrate-oxlint

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: @oxlint/migrate

Step 1: Run Automated Migration

Run the migration tool in the project root:

npx @oxlint/migrate

This reads your ESLint flat config and generates a .oxlintrc.json file.

Key Options

Option Description

--merge

Merge with an existing .oxlintrc.json instead of overwriting

--type-aware

Include type-aware rules (requires running oxlint with --type-aware )

--with-nursery

Include experimental rules still under development

--js-plugins [bool]

Enable/disable ESLint plugin migration via jsPlugins (default: enabled)

--details

List rules that could not be migrated

--replace-eslint-comments

Convert // eslint-disable comments to // oxlint-disable

--output-file <file>

Specify 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

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.

Rule Categories

Oxlint groups rules into categories for bulk configuration:

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

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

Individual rule settings in rules override category settings.

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 find oxlint alternatives.

Step 3: Handle Unsupported Features

Some features require manual attention:

  • Local plugins (relative path imports): Must be migrated manually to jsPlugins

  • eslint-plugin-prettier : Not supported. Use oxfmt instead

  • settings in override configs: Oxlint does not support settings inside overrides blocks

  • ESLint v9+ plugins: Not all work with oxlint's JS Plugins API. Test with --js-plugins

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 4: 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@latest npx oxlint@latest --fix

Common CLI Options

ESLint oxlint

eslint .

oxlint (default: 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

eslint -c config.json

oxlint --config config.json

Additional oxlint options:

  • --type-aware : Enable rules requiring TypeScript type information

  • --tsconfig <path> : Specify tsconfig.json path for type-aware linting

Tips

  • Start gradually: Enable correctness rules first (the default), then progressively add suspicious , pedantic , etc.

  • Run alongside ESLint: Oxlint is designed to complement ESLint during migration. You can run both until all rules are covered.

  • Disable comments work: // eslint-disable and // eslint-disable-next-line comments are supported by oxlint. Use --replace-eslint-comments to convert them to // oxlint-disable if desired.

  • List available rules: Run npx oxlint@latest --rules to see all supported rules.

  • Schema support: Add "$schema": "./node_modules/oxlint/configuration_schema.json" to .oxlintrc.json for editor autocompletion.

  • Output formats: default , stylish , json , github , gitlab , junit , checkstyle , unix

References

  • CLI Reference

  • Config File Reference

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

migrate-oxfmt

No summary provided by upstream source.

Repository SourceNeeds Review
General

insta-snapshots

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated