モノリシック リポジトリを使用するプロジェクトがあります。各パッケージには、そのパッケージの依存関係を管理するための独自の package.json ファイルがあります。lerna
monorepo アプリのすべての「サブパッケージ」にパッケージをインストールするために使用しています。
現在のプロジェクト構造は次のようになります
計画/ | | パッケージ.json | | node_modules/ |- パッケージ/ |-- package1/ |--- package.json |--- node_modules/ |-- package2/ |--- package.json |--- node_modules/
ルート node_modules フォルダーで一般的な依存関係を一般化する方法を検討しているため、各パッケージは実行時にノード パッケージの独自のコピーをプルせずlerna exec -- npm install
、代わりにモノリシック リポジトリのルートにあるものを使用して、インストールを回避します。複数のレポで同じパッケージを使用するため、プロジェクトのサイズが縮小されます。
プロジェクト間にいくつかのシンボリックリンクを作成することを含むいくつかの解決策を見てきましたが、シンボリックリンクのサポートは非常にOSの意見であるため、それは正確な科学ではないようです。また、これはサポートされている方法ではないようです。
現在、私たちはまだ始まったばかりで、lerna exec -- npm install
プロジェクトを実行した後、ディスク上にすでに約 350MB あり、npm からすべてをプルするのに最初は約 5 分かかります。プロジェクトは時間の経過とともに成長するため、この時間も時間の経過とともに延長されます...
したがって、すべてを再開するために、リポジトリのルートにある node_modules フォルダーで共通の依存関係を抽出し、サブパッケージが毎回独自のコピーを取得するのではなく、このフォルダーから共通の依存関係をプルするようにする方法を探しています。