ESLint: マルチスレッドlintの導入で大規模プロジェクトの速度を最大3倍改善
(eslint.org)主な要約
- ESLint v9.34.0 にマルチスレッドlintが追加され、複数のファイルを同時に処理できるようになった。
- 大規模コードベースでlint時間を有意に短縮することを目指している。
- 10年以上準備されてきた機能が完了し、正式に導入された。
何が良くなったのか
- CPUコアをより有効に活用し、並列処理によって全体のlint時間を短縮する。
- 特にファイル数の多いモノレポ/大規模リポジトリで効果的。
使い方
- CLIで同時実行数(スレッド数)を制御するオプションが提供される(例: concurrency 関連設定)。
- プロジェクトやCI環境に合わせて同時実行数を調整し、最適なポイントを見つけられる。
制約・注意点
- 一部の外部ラッパーや統合ツール経由で実行する場合、期待どおりの性能が出ないという報告例がある(環境やツールの組み合わせによって異なる)。
- 最新機能のため、lintフローに導入する際はCIとローカルの両方で性能と安定性をあわせて検証することが推奨される。
導入のヒント
- リポジトリ全体を一度に切り替えるよりも、ディレクトリ単位で段階的に導入しながら適切な同時実行数を探る。
- CIではキャッシュと並列戦略をあわせて調整し、ボトルネック(ファイルI/O、ルール実行時間)が大きいルールやプラグインを優先的に確認する。
ひとこと
- 「待望の並列lint。大規模プロジェクトのlint時間を体感レベルで改善できるタイミング。」
まだコメントはありません。