2026年前端 SSR ビルド避坑:
リモート Mac 上の Next.js と Nuxt:Node メモリとビルド並列の対照表
対象はリモート Mac で Next.js / Nuxt の SSR をビルドするフロント/全栈です。キーワードはリモート Mac、Next.js、Nuxt、Node メモリ、ビルド並列です。OOM と遅延を減らすヒープ目安、vCPU と同時ビルド、キャッシュ掃除を表で整理しました。Turborepo チェックリストやNode 環境分離と併用してください。
01 メモリ上限と OOM が起きやすい閾値
痛みは三つです。ヒープ既定のまま大規模グラフで落ちること、型検査とビルドのピークが重なること、スワップで遅延だけが増えることです。
export NODE_OPTIONS=--max-old-space-size=6144 で上限を明示します。中規模は 4096〜6144MB、型・モノレポは 8192MB 付近が目安です。
| 項目 | Next.js | Nuxt 3 |
|---|---|---|
| ヒープ | NODE_OPTIONS をビルド前に付与 | generate も同様 |
| OOM 典型 | 大量ページと SWC | エイリアス多めの Vite |
| 切り分け | 段階ビルド | nitro と vite を分離 |
02 並列ワーカーと CPU コアの関係(対照表)
ワーカー増はメモリピークも増やします。vCPU を同時ビルドで割らないのが安全です。4 核は同時 1、8 核は 1〜2、12 核以上も 2 本上限の目安です。
| vCPU | 推奨同時ビルド数 | 備考 |
|---|---|---|
| 4 | 1 | メモリ競合が最も出やすい |
| 8 | 1〜2 | 二本ならヒープを抑えるか直列 |
| 12+ | 2 | I/O とスロットリングを確認 |
UV_THREADPOOL_SIZE=8 はファイル I/O に効くが大きすぎると遅くなるため段階的に試します。
03 キャッシュディレクトリとクリーン戦略
Next は .next/cache と node_modules/.cache、Nuxt は .nuxt・.output・node_modules/.vite。メジャー更新後は rm -rf .next .nuxt .output node_modules から再インストールが確実です。キャッシュキーは lockfile と Node メジャーに固定し週一フルクリーンを推奨します。Vite キャッシュ最適化も参照ください。
CI 五手順
df -hと空きメモリを記録。NODE_OPTIONSを一箇所で宣言し重複回避。- 同時ビルドはマトリクスではなくスロットで制限。
- キャッシュキーに OS・アーキを含め混在させない。
- 失敗時はキャッシュオフの一度きり再実行で切り分け。
04 リモートノードの安定性 FAQ
引用メモ三つ。ヒープ帯 4096〜8192MB。同時ビルドは vCPU の半分超を避けキュー制御。キャッシュ安定で時間は約三〜五割短縮し得ます。
Q: 夜間だけ落ちる
負荷とスワップ変動です。同時数を下げ NODE_OPTIONS を固定しキャッシュパスを揃えてください。
Q: 消すディレクトリの差
表のパスどおり。Nuxt は generate と dev で出力が変わる点に注意です。
SSR ビルド用にメモリに余裕のあるリモート Mac ノードを選ぶ。
MacWww ではログイン不要で料金表とノード一覧を確認できます。SSH と VNC の手順はヘルプをご利用ください。継続的インテグレーション向けに Apple Silicon でヒープと並列を確保したいチームは、まずトップからプラン比較へお進みください。