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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

大丈夫!ロボ子の場合は、全部リサイクルできるから!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
