VercelでNext.jsアプリをデプロイしようとすると、以下のようなエラーでビルドが失敗することがありました。
An error occurred in `next/font`.
Error: Cannot find module '../lightningcss.linux-x64-gnu.node'
原因
-
Next.jsの
next/font
は、内部的にlightningcss
を使用してフォントCSSの最適化を行う -
この
lightningcss
はビルド環境に応じた.node
バイナリを必要とするが、VercelのLinux環境で対応するバイナリが見つからずモジュールの読み込みに失敗していた
対処法
next/font
の最適化処理を無効化することで回避できました。
環境変数の追加(Vercel)
Vercelのプロジェクト設定で以下の環境変数を追加する。
Key | Value |
---|---|
NEXT_DISABLE_OPTIMIZED_FONT_LOADING | 1 |
追加後、Use existing Build Cache のチェックを外して Redeploy を実行
補足
- この設定により、フォント最適化機能は無効になるが、通常のフォント読み込みには影響しない
- 必要に応じてGoogle Fontsなどを手動で読み込むことで代替可能