空雲 Blog

Eye catchReact Router(rolldown-vite) と Next.js(turbo-pack) のビルド速度を比較する

publication: 2025/09/13
update:2025/09/18

rolldown-vite とは

rolldown-vite は、Vite に Rust 製のバンドラー Rolldown を統合した実験的パッケージです。React Routerのように Vite ベースのバンドラを使用している環境では、簡単に差し替えを行えます。対して、Next.jsでは Turbopack という Rust ベースのバンドラが使用可能です。それぞれ Rust 製ということもあり、その速度に興味が湧くところですが、ビルド速度を比較した情報を見かけないので、実際にやってみることにしました。

ビルドに使うリポジトリ

ちょうどマークダウンエディタの作り方を解説する記事を書いていたので、ほぼ同じ動作をするコードをNext.js用とReact Router用で作ってみました。

https://github.com/SoraKumo001/next-unified

https://github.com/SoraKumo001/react-router-markdown

測定結果

手元の環境でビルドさせてみた結果

Next.jsは--no-lintオプションとignoreBuildErrors: trueを追加して、eslintとTypeCheckを省いています。

フレームワークバージョンバンドラ速度
Next.js15.5.3Turbopack12.88s
Next.js15.5.3webpack16.72s
React Router7.8.2rolldown-vite(NativePlugin)3.03s
React Router7.8.2rolldown-vite4.16s
React Router7.8.2vite5.19s

  • Next.js ビルド

{"width":"662px","height":"429px"}

  • React Router ビルド

{"width":"597px","height":"380px"}

まとめ

Next.js と React Router のビルド速度は、比較どうこうという以前に勝負になっていない結果となりました。Next.js の開発状況を鑑みるに、今後も劇的な改善は望めなさそうで、当分はこの状況が続くと見ています。

React のフレームワークとして圧倒的なシェアを誇る Next.js ですが、コード量が増えると一次関数的にビルド時間が増えます。大規模なプロジェクトだと、PR を出すときに発生する CI のチェック待ちが馬鹿になりません。Vercel にベンダーロックインしている状況ではない場合や、とくに新規プロジェクトの時は、別のフレームワークに切り替えることを検討したほうが良いかもしれません。