esbuild · SWC · Monorepo · リモート Mac · 2026
2026 リモート Mac フロント構築の落とし穴:
esbuild と SWC の並列 worker/cacheDir/NODE_OPTIONS 対照表
2026.04.11
フロント/ビルド
約 7 分
pnpm/npm workspacesで esbuild と SWC が同居すると、共有リモート Mac では CPU 過剰・キャッシュ散在・Node ヒープ不足が重なりがちです。GOMAXPROCS/worker、cacheDir、NODE_OPTIONS、増分スイッチを一枚にし、検収手順まで示します。フロント系ブログ一覧・トップ・購入はログイン不要です。
並列 · キャッシュ · ヒープ · 2026
01 monorepo がリモート Mac で荒れる典型
Apple Silicon でも、esbuild と SWC が別々にワイド並列すると論理 CPU を超え、I/O でキャッシュが温まりません。.swc と node_modules/.cache が分断されると restore も一部だけ冷えます。先に環境変数とキャッシュ親を揃えてください。併読:Turborepo リモートキャッシュ、Vite/Webpack キャッシュ、Rspack と esbuild worker。
02 対照表:GOMAXPROCS/worker、cacheDir、ヒープ、増分
数値はチケット用の出発点。同期用に 1 コアを空け、残りを配分します。
| レイヤ | GOMAXPROCS/worker 数 | cacheDir | NODE_OPTIONS(ヒープ上限) | 増分ビルドのスイッチ |
|---|---|---|---|---|
| esbuild(Go バイナリ) | GOMAXPROCS を物理コア付近に。バンドラ同時実行は Node スレッドと合算。 |
ステートレス本体+ラッパー側で node_modules/.cache/esbuild や .cache/build を単一路に。 |
Go 本体は対象外。Node プラグインのみ NODE_OPTIONS=--max-old-space-size=8192 等。 |
CLI 一発よりバンドラキャッシュ API。クリーン後の温二回目で効きを測る。 |
| SWC(Rust) | RAYON_NUM_THREADS で vCPU 明示。Next/Turbo 並列はホスト以下。 |
.swc・.next/cache を SSD ワークスペースへ集約(必要なら symlink)。 |
型・ソースマップが Node に残るなら --max-old-space-size を RSS に合わせ段階的に。 |
AST ディスクキャッシュ+フレームワーク incremental を両立。ツール更新時のみ掃除。 |
| オーケストレータ(Turbo/Nx 等) | --parallel ≤ GOMAXPROCS+SWC 合計。ビルド+テスト負荷も同じチケットで。 |
TURBO_CACHE_DIR/NX_CACHE_DIRECTORY を単一路、クリーナ対象外に。 |
ネスト npm へ継承させるためプロファイルで NODE_OPTIONS を一括宣言。 |
ローカル増分安定後にリモートキャッシュ。ヒット率だけで誤設定を隠さない。 |
esbuild と SWC の合算並列が論理 CPU を超えないことが、リモート Mac での再現性の鍵です。
03 ベンチ前の五つの整え
- TS/JSX に触れるバイナリを洗い、esbuild/SWC/同居をラベル化。
- ランナーごとにキャッシュ親を一つ決め、env と CI artifacts で固定。
GOMAXPROCS・RAYON_NUM_THREADS・オーケ並列を同一チケットに。- リモート Mac で冷一回のあと十分以内に温を二回以上。
- 壁時計・ピーク RSS・ディスク I/O をログ化し PR に添付。
チケットに貼れる目安(Apple Silicon)
- 大規模 DS は Node ヒープ 8GB 付近から試し、後で削る。
- UI/同期用に 1 コアを空け、スレッド上限から減算。
- NVMe の温増分は冷に比べ 約三〜六成短縮の例が多い(依存あり)。
04 リモート Mac 検収チェックリスト
- SSH 一致:二シェルで
env | sortを突合、三変数がブランチ間で同一か。 - キャッシュ証跡:温実行で
cacheDirのバイト増とオーケヒット。常冷は失敗。 - 競合:テスト併走ビルドでも予算内。
- ディスク:
df -h空き二割未満なら捨てキャッシュ整理。 - 引継ぎ:対照表の行+冷/温の壁時計をノート欄へ。
待ち行列が続くなら 専用リモート Mac をレンタルしビルド枠を隔離するのが確実。料金も公開ページで(ログイン不要)。
05 FAQ
Q. GOMAXPROCS 上限は速さに直結? A. 物理コア超は多くの場合オーバーヘッドのみ。
Q. cacheDir を共有? A. 内部形式は分離、親ディレクトリとバックアップだけ共通化。
Q. 共有ホストの増分は危ない? A. ワークスペース分離+ツール更新時のみ掃除で運用可。