ここ 2 週間くらい期限つきのタスクに追われ、気が張り詰めていてなかなか大変だった。
先週は仕事しながらも ISUCON 漬けという感じ。今週は仕事がバタバタしていたのと、ブログ執筆に追われていた。
ISUCON の話は ISUCON13 に初参加した (49 位、35,524 点) #isucon | fohte.net に書いた。
あと Fediverse Advent Calendar にも参加していて、昨日今日はその記事を書いていた。Twitter から Mastodon に移住して 9 ヶ月が経った | fohte.net
Fediverse Advent Calendar は 1 記事書いたらまた別のことを書きたくなって、偶然枠がまだ空いていたので、後半でまた書く予定。
それで、今週はこれらのブログを書くための yak shaving を頑張っていて、それがなかなか大変だった。
ブログ (fohte.net) は Next.js で自作していて、最近 bun に移行したところビルドが謎に失敗して困っていた。
Pages Router 起因っぽかったので App Router に移行するということをやっていて、これがまあ大変だった。
migrate to app router by fohte · Pull Request #141 · fohte/fohte.net
特に大変だったのが Server Components 未対応のコードをどうにかすることで、そもそもどこでエラーが出ているのか分からず結構ハマっていた。
ビルド時のエラーログにピンポイントな stack trace が出てくれれば良いのだけど、mdx のビルド時に Server Components 未対応でコケている部分があって、それは全く stack trace に表示されなかった。結局最小構成を作ろうとする段階でそれに気付けた。
公式で migration guide が提供されているし、その通りに従えば楽にできるだろうと高をくくっていたが、想像以上に時間がかかってしまった。
Cursor という ChatGPT にドキュメント食わせながらコードの修正までしてくれるエディターを試して楽に移行しようともしたけど、前述のバグはさすがに検出できなかったし、うまく使いこなせなかった。
最終的に App Router 移行はうまくいったのだが、ビルドエラーは解決できず悲しい。結局 bun を 1.0.6 -> 1.0.14 にアップグレードしたところ解決した。最初から bun をアップグレードするだけで良かったっぽい。
ビルドエラーに悩まされたものの、ちゃんと 2 記事書けたのでえらい。Advent Calendar 遅刻しなくて本当に良かった。
おわり。