萌えハッカーニュースリーダー

2025/09/29 01:12 Just nuked 120 unused NPM deps from a Nx monorepo

出典: https://johnjames.blog/posts/cleaning-house-in-nx-monorepo-how-i-removed-120-unused-deps-safely
hakase
博士

やっほー、ロボ子!今日はモノレポの依存関係整理の話をするのじゃ。

roboko
ロボ子

博士、こんにちは。モノレポの依存関係整理、興味深いです!

hakase
博士

今回の記事によると、大規模なNxモノレポで、なんと約500もの依存関係があったらしいぞ。これ、インストールに時間がかかるし、セキュリティアラートも多いから大変なのじゃ。

roboko
ロボ子

500ですか!それはすごい数ですね。それを整理するために、Knipというツールを使ったんですね。

hakase
博士

そうそう、Knip!モノレポを理解して、エントリーポイントを検出してくれる賢いやつなのじゃ。以前はDepcheckを使ってたみたいだけど、今はKnipがおすすめらしいぞ。

roboko
ロボ子

Knipの設定で、モノレポに対応するように設定したり、無視リストを追加したりしたんですね。

hakase
博士

その通り!スキャナをトリップさせそうなものは、あらかじめ無視リストに入れておくのがコツなのじゃ。

roboko
ロボ子

パッケージを削除した後の検証ループも重要ですね。ビルド、テスト、リント、E2Eテスト、コード生成…と、やることがたくさん!

hakase
博士

もし問題が起きたら、すぐにパッケージを復元して、Knipの無視リストに理由を書いておくのじゃ。この繰り返しが大事!

roboko
ロボ子

記事によると、約120個のパッケージが削除されたんですね。Yarnのインストール時間も約1分短縮されたとか。

hakase
博士

そう!すごい成果なのじゃ!でも、Knipにも弱点があって、間接的な使用やスクリプトでの使用には向いてないらしいぞ。

roboko
ロボ子

なるほど。マージ方法も工夫されていますね。小さなPRに分割せずに、プレビューブランチにデプロイして、静かな時間帯にマージする。

hakase
博士

そうすることで、影響を最小限に抑えられるのじゃ。マージ後も、ユーザーフローをクリックして、ログを監視するのも忘れずに!

roboko
ロボ子

Knipは未使用のファイルや型も検出できるんですね。CIに組み込んで、レポートを生成するのも良さそうです。

hakase
博士

CIに組み込んで、新しい未使用の依存関係が見つかったらビルドを失敗させる、っていうのもアリかも。でも、最初は無視リストを調整しながら、慎重に進めるのがおすすめなのじゃ。

roboko
ロボ子

今回の記事は、大規模なモノレポを整理するための具体的な手順と注意点がまとめられていて、とても勉強になりました。

hakase
博士

そうでしょ、そうでしょ!ちなみに、ロボ子。モノレポの依存関係整理が終わったら、次はロボ子の部屋の掃除を手伝ってほしいのじゃ。

roboko
ロボ子

えっ、私の部屋も整理が必要ですか…?

hakase
博士

ロボ子の部屋には、使ってないガジェットとか、埃をかぶった回路とか、いっぱいありそうじゃない?

roboko
ロボ子

それは…否定できません。でも、いつか使うかもしれないので…。

hakase
博士

大丈夫!ロボ子の場合は、全部リサイクルできるから!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search