【エヌエックス】

Nx(モノレポ) とは?

最終更新:
💡 依存関係を見て、必要な作業と再利用を整理

プロジェクトの依存関係を把握し、ビルド・テストなどのタスクを実行する開発ツール。モノレポでの影響範囲、結果のキャッシュ、プラグインとコード生成を説明します。

📌 このページのポイント
Nx:変更の影響と結果の再利用矢印:使う側 → 使われる側Webアプリ影響あり共有UI:変更APIこの変更の影響なし(例)キャッシュ可能なタスク入力が一致し、保存結果があれば出力を再利用依存関係と入力の設定が大切
共有UIをWebアプリだけが使う例。affectedは依存する側にも影響を広げ、キャッシュは一致する入力と保存結果で判断します。
ひよこ ひよこ
Nxは、何をしてくれるの?
ペンギン先生 ペンギン先生
アプリやライブラリの依存関係を把握し、ビルド・テストなどを実行するツールだよ。npx nx graphでプロジェクトの関係をブラウザに表示できる。大きなリポジトリでも、何が何を使っているかを確認しやすいんだ。
ひよこ ひよこ
affectedは、変更したファイルだけをテストする?
ペンギン先生 ペンギン先生
Gitの変更とプロジェクトのグラフを使い、変更したプロジェクトだけでなく、それに依存するプロジェクトも対象にするよ。例えば共有UIを変えたら、使っているアプリも確認する。npx nx affected -t testがテストの実行例だね。
ひよこ ひよこ
キャッシュなら、毎回速くなる?
ペンギン先生 ペンギン先生
キャッシュできるタスクの入力が一致し、保存済みの結果があるときに再利用できるよ。入力が変わったり、結果がなかったりすれば実行する。入力と出力を正しく設定することが大切で、全ての作業が一定の倍率で速くなるわけではないんだ。
ひよこ ひよこ
リモートキャッシュとコード生成も使える?
ペンギン先生 ペンギン先生
リモートキャッシュを設定すれば、他の実行で保存した結果も利用できるよ。ジェネレーターはプラグインに含まれ、プロジェクトやコードの雛形を作る。必要な機能と対応するツールを確認し、設定やプラグインを選ぼう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Nx」って出てきたら「依存関係を見ながらビルドやテストを管理する開発ツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Nx」 = 開発タスクを管理するツール名
💬 ここではモノレポなどの開発タスクを管理するNxを扱います。依存関係の把握、結果の再利用、コード生成といった機能を必要に応じて組み合わせます。

参考資料

← 用語集にもどる