JavaScriptとTypeScript向けの300以上のルールに加え、CSS、HTML、JSON、Markdown、YAML向けのルールも提供するESLintプラグインです。
xojs/xo
厳選された厳格なデフォルト設定と組み込みのコードスタイルを備え、ESLintをラップしたゼロ設定のJavaScript/TypeScriptリンターです。
- スター
- 7,995
- フォーク
- 309
- 未解決の Issue
- 3
- 最終コミット
- 2 か月前
これは何?
XOは、厳選されたデフォルト設定でESLintをラップする、JavaScriptおよびTypeScript向けのコマンドラインリンターです。プロジェクトで実行するだけで、ファイルパスを列挙したりESLintの設定を書いたりすることなく、JS、TS、各種フレームワークのファイルに加えて、HTML、Markdown、JSON、CSSも lint できます。プルリクエストでコードスタイルについて議論するのをやめ、ツールに一貫したルールを適用させたいチームを想定しています。
デフォルトのスタイルはタブインデント、セミコロン、シングルクォート、末尾カンマを使い、フラグでスペースインデントやセミコロンなしのスタイルに切り替えられます。unicorn、import-x、ava、nなど、同梱のESLintプラグインが追加のチェックを行います。設定はESLintのflat config形式に従うxo.config.jsまたはxo.config.tsファイルでカスタマイズできます。実行間で結果がキャッシュされ、`--fix`を指定すると自動修正が適用されます。
XOを使うには、プロジェクトがES modulesを使用している必要があります。Astro、React、Svelte、Vue向けのフレームワーク固有のlint機能は、別途ESLintプラグインを追加して利用できます。また、オプションのPrettierモードでは、コードを整形するか、競合するルールを無効化できます。
主な機能
- 01JS、TS、HTML、Markdown、JSON、CSSファイルを設定なしでlintできます。
- 02TypeScriptを標準サポートし、unicornやimport-xなどのESLintプラグインが同梱されています。
- 03`--fix`で自動修正し、`--open`でエラーのあるファイルをエディターで開けます。
- 04ルール設定を変更せずに、インデントやセミコロンのスタイルを簡単に切り替えられます。
- 05オプションでPrettierによる整形、またはPrettierと競合するルールを無効にする互換モードを利用できます。
- 06eslint-suppressions.jsonファイルを使った一括抑制に対応しています。
ユースケース
- ESLintの設定を書かずに、チーム全体で一貫したコードスタイルを適用する。
- 単一のコマンドで、新しいJavaScriptまたはTypeScriptプロジェクトにリンターを導入する。
- フレームワーク固有のプラグインを追加して、Vue、Svelte、Astro、Reactのコードベースをlintする。
- 抑制機能を使って、大規模な既存コードベースに厳格なルールを段階的に導入する。
クイックスタート
- 1
XOをプロジェクトにローカルインストールする
npm install xo --save-dev - 2
XOを実行してプロジェクトをlintする
npx xo
使う前に知っておきたいこと
- XOを使うには、プロジェクトがESMである必要があります。
- XOはESLintのラッパーです。組み込みルールに関する問題はESLintプロジェクトに報告してください。
- 特に設定しない限り、タブ、シングルクォート、セミコロンを使う、独自のスタイルを採用しています。
収録されている特集
トピック
よくある質問
- xo とは?
- 厳選された厳格なデフォルト設定と組み込みのコードスタイルを備え、ESLintをラップしたゼロ設定のJavaScript/TypeScriptリンターです。 XOは、厳選されたデフォルト設定でESLintをラップする、JavaScriptおよびTypeScript向けのコマンドラインリンターです。プロジェクトで実行するだけで、ファイルパスを列挙したりESLintの設定を書いたりすることなく、JS、TS、各種フレームワークのファイルに加えて、HTML、Markdown、JSON、CSSも lint できます。プルリクエストでコードスタイルについて議論するのをやめ、ツールに一貫したルールを適用させたいチームを想定しています。
- xo は無料で使えますか?ライセンスは?
- xo は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- xo は今もメンテナンスされていますか?
- 半年以内に更新あり。xo の最終コミットは 2026年9月18日 です。
- xo は何に使えますか?
- ESLintの設定を書かずに、チーム全体で一貫したコードスタイルを適用する。 単一のコマンドで、新しいJavaScriptまたはTypeScriptプロジェクトにリンターを導入する。 フレームワーク固有のプラグインを追加して、Vue、Svelte、Astro、Reactのコードベースをlintする。 抑制機能を使って、大規模な既存コードベースに厳格なルールを段階的に導入する。
- xo のインストール方法は?
- XOをプロジェクトにローカルインストールする: npm install xo --save-dev XOを実行してプロジェクトをlintする: npx xo
- xo はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/xojs/xo
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ESLintでTypeScriptコードを解析・Lintするためのパーサー、ルール、プラグインなどを提供するモノレポ。
clang-formatのレイアウトアルゴリズムを基に、設定可能なスタイルでPythonソースファイルを整形するフォーマッター。
複数プロジェクトで共通の設定を適用し、設定ファイルを自動修正できるコマンドラインツール兼flake8プラグイン。
JavaScriptとTypeScript向けのゼロ設定のリンター兼フォーマッター。1つのコマンドでBiome、ESLint、Oxlintをプリセットルールとともに設定できます。
ECMAScript/JavaScriptの問題のあるパターンを検出し、多くの問題を自動修正できる、プラグイン対応のリンターです。