npm/Yarnパッケージダウンロード帯域幅
npm install、yarn install、pnpm installの帯域幅と時間を計算。node_modulesサイズ、コールドvsウォームキャッシュ、レジストリパフォーマンスをカバーします。
DevOps
詳細な説明
npmパッケージダウンロード帯域幅
npm installコマンドは、特に大規模なプロジェクトでは数百メガバイトのパッケージをダウンロードすることがあります。これらの転送サイズを理解することでCI/CD計画と開発者オンボーディングに役立ちます。
一般的なnode_modulesダウンロードサイズ
| プロジェクトタイプ | パッケージ数 | ダウンロードサイズ | インストールサイズ |
|---|---|---|---|
| 最小限のAPI | 50-100 | 20-50 MB | 50-150 MB |
| Reactアプリ(CRA) | 800-1200 | 150-250 MB | 300-500 MB |
| Next.jsアプリ | 500-800 | 100-200 MB | 200-400 MB |
| エンタープライズモノレポ | 2000-5000 | 300-800 MB | 1-3 GB |
転送時間の計算
Next.jsプロジェクト(~150 MBダウンロード)を異なる接続でインストール:
3G(5 Mbps): 150 * 8 / 5 = 240秒 = 4分
4G(50 Mbps): 150 * 8 / 50 = 24秒
WiFi(100 Mbps): 150 * 8 / 100 = 12秒
光回線(1 Gbps): 150 * 8 / 1000 = 1.2秒
インストール帯域幅の削減
- パッケージロックファイル:
package-lock.jsonやyarn.lockで再現可能なインストール - pnpm: コンテンツアドレス可能ストレージでディスクとネットワークを約60%節約
- キャッシング: CIキャッシュで変更されていない依存関係の再ダウンロードを回避
- Verdaccio/Artifactory: プライベートレジストリプロキシでパッケージをローカルにキャッシュ
npm ci: CI用にnpm installより高速(解決をスキップ)
ユースケース
プロジェクトセットアップ時間を見積もるフロントエンド開発者、CIランナーキャッシュをサイジングするDevOpsエンジニア、開発者オンボーディングワークフローを計画するエンジニアリングリード、帯域幅が制約された環境でpnpm vs npm vs yarnを評価するチームに活用されます。