Bun runtime で Hono on Next.js と戯れる
Next.js × Hono の記事がタイムラインに流れてきて、Hono を使いつつ楽に React を立ち上げる環境を探るために手元で動かしていた。
pp/api/[[...route]]/route.ts を見ると分かるが、Next.js API (Hono で処理する) は Edge Runtime で動かしている
(Edge は Hono 公式ドキュメントも同様)
しかし、Bun runtime (検証した Bun は最新の v1.1.6)はまだ Web APIs の TextDecoderStream をサポートしていないため、以下のようなエラーになる
$ bun --bun x next dev
.
.
✓ Compiled /api/[[...route]] in 1868ms (677 modules)
⨯ error: Attempt to export a nullable value for "TextDecoderStream"
at defineProperties (file:///Users/yoshikouki/src/github.com/yoshikouki/honon/node_modules/next/dist/compiled/edge-runtime/index.js:13918:28)
at addPrimitives (file:///Users/yoshikouki/src/github.com/yoshikouki/honon/node_modules/next/dist/compiled/edge-runtime/index.js:13902:25)
at extend (file:///Users/yoshikouki/src/github.com/yoshikouki/honon/node_modules/next/dist/compiled/edge-runtime/index.js:13854:113)
at new VM (file:///Users/yoshikouki/src/github.com/yoshikouki/honon/node_modules/next/dist/compiled/edge-runtime/index.js:13946:88)
at new EdgeVM (file:///Users/yoshikouki/src/github.com/yoshikouki/honon/node_modules/next/dist/compiled/edge-runtime/index.js:13854:16)
at file:///Users/yoshikouki/src/github.com/yoshikouki/honon/node_modules/next/dist/server/web/sandbox/context.js:102:163
この対応状況は Bun's Roadmap で確認することができる
Bun runtime (bunx --bun next dev) で動かないというだけであり、Node.js 互換としては問題なく動いた (bunx next dev)
また、Next.js が Edge Runtime 設定でなければ (export const runtime = "edge"; の削除)、最小構成の現在は Bun runtime でも動いている。
Bun が v1.0 になりプロダクションレディを宣言したとはいえ、Bun runtime の方は Web APIs などのサポートが完全ではない。今後も留意したい。
まあ Edge な Bun runtime で Next.js を動かすケースは本番ならそこまで多くないかも知れないが。
この記事が気に入ったらサポートをしてみませんか?