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秒

インストール帯域幅の削減

  1. パッケージロックファイル: package-lock.jsonyarn.lockで再現可能なインストール
  2. pnpm: コンテンツアドレス可能ストレージでディスクとネットワークを約60%節約
  3. キャッシング: CIキャッシュで変更されていない依存関係の再ダウンロードを回避
  4. Verdaccio/Artifactory: プライベートレジストリプロキシでパッケージをローカルにキャッシュ
  5. npm ci: CI用にnpm installより高速(解決をスキップ)

ユースケース

プロジェクトセットアップ時間を見積もるフロントエンド開発者、CIランナーキャッシュをサイジングするDevOpsエンジニア、開発者オンボーディングワークフローを計画するエンジニアリングリード、帯域幅が制約された環境でpnpm vs npm vs yarnを評価するチームに活用されます。

試してみる — Bandwidth Calculator

フルツールを開く