はじめに
Next.js を使って普段アプリ開発をしていると、開発サーバー起動やパッケージインストール、ビルド時間などで地味に待たされることがあります。特にプロジェクトが大きくなってくると、毎日の積み重ねで結構なストレスになることもありました。
そこで今回、JavaScript ランタイムの Bun を Next.js の開発環境に導入したところ、想像以上に高速化できたので、その手順とメリットをまとめました。
Bun を導入すると何が速くなるの?
実際に体感できたこと:
-
開発サーバーの起動が速い(
next devが一瞬で立ち上がる) - 依存関係のインストールが爆速(npm の数倍速い)
- ビルド時間の短縮(特に大きめなアプリで効果大)
Next.js 14/15 以降は Turbopack が導入されていることもあり、Bun との相性がよく、開発サイクルが明確に改善しました。
導入手順
1. Bun をインストールする
curl -fsSL https://bun.sh/install | bash
2. プロジェクトで Bun を使う
Next.js の既存プロジェクトなら、
bun install
を実行するだけで OK。npm や pnpm の node_modules をそのまま読み込んで使えます。
実際の速度比較(体感ベース)
| 処理内容 | npm | Bun | 差分 |
|---|---|---|---|
| 依存関係インストール | 約2分30秒 | 約50秒 | 約3倍速い |
| next dev 起動 | 約10秒 | 約3秒 | 3倍短縮 |
| ビルド(中規模アプリ) | 約15秒 | 約15秒 | 変化なし |
※環境:MacBook Air M2 / Next.js 15 / Turbopack ON
なぜ速いのか?
Bun が高速な理由は、公式でも公開されている通り:
- Zig で実装されていて実行速度が速い
- JavaScript ランタイム、バンドラー、パッケージマネージャが一体型
- ネイティブ実装のパッケージインストーラ
Node ではバラバラで動く処理が、Bun だとひとまとめで高速に動く構造になっています。
注意点
どんだけ結果が良くても、いくつか注意もあります:
- 一部の Node API が未対応なライブラリがある
- 古い Next.js だとバンドラ周りで相性問題が出る可能性
- CI/CD で Bun を使う場合、環境構築が必要
ただ、Next.js 15 のプロジェクトでは問題なく使えました。
おわりに
今回の導入では、特に「待ち時間」がなくなることで開発のモチベが崩れにくくなりました。Bun は今後も進化が早く、Next.js との相性も改善され続けているので、しばらく追いかけてみる予定です。