Oxlint Beta
本記事では、Oxlint のベータリリースを発表します。 その後、Oxlint はバージョン 1.0 ステーブルに到達しました! 最新の機能や改善点については、Oxlint v1.0 プレリリースのお知らせ をご確認ください。
コミュニティによる1年以上にわたる開発を経て、私たちは非常に喜ばしく、Oxlint のベータリリースを発表できることを心から嬉しく思います!
この節目は、機能の完成度、パフォーマンス、安定性において重要な前進を象徴しています。
使い方
現時点では、小さなプロジェクトから中規模のプロジェクトまで、完全に ESLint に置き換えることができます。
大規模なプロジェクトの場合、eslint-plugin-oxlint を通じて ESLint ルールを無効化し、ローカル環境または CI 環境で Oxlint を ESLint より先に実行することで、より迅速なフィードバックループを実現できます。
コードベースで Oxlint をテストするには、コードベースのルートディレクトリで任意のパッケージマネージャーを使用してください:
$ npx oxlint@latest$ pnpm dlx oxlint@latest$ yarn dlx oxlint@latest$ bunx oxlint@latest$ deno run npm:oxlint@latestOxlint の使い方やプロジェクト・エディタとの統合方法について詳しく知りたい場合は、インストールガイド をご参照ください。
一般公開以降の新機能のハイライト
- 前回リリースと比べ最大2倍の高速化という大幅なパフォーマンス向上
- 500以上ものルールが内蔵済みで、追加インストール不要
typescript、unicorn、react、react-perf、nextjs、import、jsdoc、jsx-a11y、node、promise、jest、vitestプラグインからの多くのルールが完了.oxlintrc.jsonファイルによる設定サポート(ネストされた設定ファイル、extendsを用いた設定の共有、特定ファイルへのoverrides適用なども可能).astro、.svelte、.vueファイル内の<script>内容に対して、追加設定なしでレンチングを実行可能- ファイルに対する自動修正および提案の適用を可能に
より多くのルール、より高いパフォーマンス
多くの一般的に使用される ESLint ルールやプラグインをサポートするように、機能の充実を重視してきましたが、同時に、より高速な Oxlint の実現にも注力しています。
初めての一般公開 (GA) リリースでは、合計205のルールがあり、そのうち70がデフォルトで有効化されていました。今回のベータリリースでは、合計502のルールが含まれており、そのうち99がデフォルトで有効化(デフォルト有効ルール数が41%増加)されています。
| ルール種別 | ルール数 (GA) | ルール数 (beta) | 増加率 |
|---|---|---|---|
| デフォルトルール | 70 | 99 | +29 ルール |
| 正しさ | 88 | 173 | +88 ルール |
| パフォーマンス | 0 | 9 | +9 ルール |
| 制限 | 15 | 64 | +49 ルール |
| 極端な厳しさ | 43 | 79 | +36 ルール |
| スタイル | 38 | 137 | +99 ルール |
| 警戒すべき内容 | 7 | 28 | +21 ルール |
| 合計ルール | 205 | 502 | +297 ルール |
デフォルトで有効化されているルールを多数追加したにもかかわらず、現在の Oxlint はこれまでになく高速です。いくつかの人気リポジトリでのベンチマーク結果をご覧ください:
| リポジトリ | ファイル数 | ライティング時間 (GA) | ライティング時間 (beta) | 速度向上 |
|---|---|---|---|---|
elastic/kibana | 68,591 | 6.02s | 3.11s | 1.94x |
microsoft/vscode | 5,703 | 1.697s | 0.792s | 2.14x |
vitest-dev/vitest | 1,732 | 105ms | 50ms | 2.1x |
vuejs/core | 1,063 | 217ms | 89ms | 2.44x |
道のり
ユーザーから最も頻繁に要望されていた機能の一つが、既存のカスタム ESLint プラグインのサポートです。この機能の前提となる作業に精力的に取り組んできており、JavaScript で書かれた高速なライター・プラグインを可能にする仕組みを整備しています。次の大規模リリースでこの機能を提供できるよう願っており、近いうちに詳細情報を共有する予定です。
また、エディタ連携のさらなる改善も計画しており、VSCode、Zed、coc.nvim、IntelliJ プラグインへのサポートを強化していきます。
謝辞
200人を超える貢献者の方々がいないと、今回の Oxlint ベータ版の実現は不可能でした。
特に感謝したい方々:
- @cam314、@mysteryven、@shulaoda:多くの高度なルールの実装、テスト、継続的な改善に貢献。
- @Sysix:
eslint-plugin-oxlintのメンテナンス。 - @DonIsaac:設定、ドキュメント、ウェブサイトの改善、および SquiggleConf 2024 における Oxc の代表。
- @leaysgur:正規表現パーサーと JSDoc プラグインの実装。
- @u9g および @rzvxa:制御フロー図分析の実装。
- @branchseer:マルチファイル解析ランタイムの実装。
- @camchenry:ネストされた設定サポートの実装。


