ホーム/前端开发/migrate-oxlint
M

migrate-oxlint

by @oxc-projectv
4.7(42)

JavaScript/TypeScriptプロジェクトをESLintから高性能なOxlintへ移行させ、コードリンティングを実現するよう指導します。

OXLintLintingCode QualityStatic AnalysisCode RefactoringGitHub
インストール方法
npx skills add oxc-project/oxc --skill migrate-oxlint
compare_arrows

Before / After 効果比較

1
使用前

ESLintを使用してコード規範チェックを行う際、大規模プロジェクトではチェック速度の低下やリソース消費量の増加といった問題に直面し、開発体験の悪化やCI/CDプロセスの時間増加を招く可能性があります。

使用後

高性能Oxlintへ移行後、JavaScript/TypeScriptプロジェクトのコード規範チェック速度は大幅に向上し、リソース消費量も削減され、開発体験が大幅に最適化され、CI/CDプロセスが加速されます。

description SKILL.md

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

Weekly Installs612Repositoryoxc-project/oxcGitHub Stars20.1KFirst Seen13 days agoSecurity AuditsGen Agent Trust HubPassSocketPassSnykWarnInstalled onopencode605github-copilot605codex604cursor603cline602gemini-cli602

forumユーザーレビュー (0)

レビューを書く

効果
使いやすさ
ドキュメント
互換性

レビューなし

統計データ

インストール数986
評価4.7 / 5.0
バージョン
更新日2026年3月17日
比較事例1 件

ユーザー評価

4.7(42)
5
0%
4
0%
3
0%
2
0%
1
0%

この Skill を評価

0.0

対応プラットフォーム

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

タイムライン

作成2026年3月17日
最終更新2026年3月17日