🐙

Nuxt: 3.14.1592 [unhandledRejection] Nuxt instance is unavailable!

2024/12/18に公開

概要

nuxt": "^3.14.1592 × node: 18.20.4 の組み合わせでプロジェクトを起動した際にエラーが表示されたため、その作業ログと対処方法を記録します。

作業ログ

nuxt": "^3.14.1592 にバージョンアップ後の作業ログです。

  1. nodenv local 18.20.4
  2. node -v (18.20.4となっていることを確認)
  3. rm -rf node_modules
  4. yarn
  5. yarn dev 実行時、compatibilityDateの追加を促すメッセージが表示される
    推奨かつデフォルトで「Yes」となっているため、そのまま追加する。
ℹ Nuxt now supports pinning the behavior of provider and deployment presets with a compatibility date. We recommend you specify a compatibilityDate in your nuxt.config file, or set an environment variable, such as COMPATIBILITY_DATE=2024-12-18.           11:29:02 AM
ℹ Vite client warmed up in 0ms                                                                                                                                                                                                                 11:29:02 AM
❯ Do you want to update your nuxt.config to set compatibilityDate: '2024-12-18'?
● Yes / ○ No

nuxt.config.tsに compatibility: "2024-12-18" が自動追記されることを確認

compatibility: "2024-12-18"

すると一部エラーが表示される

ERROR  [unhandledRejection] Nuxt instance is unavailable!                                                                                                                                                                                     11:31:57 AM
  at useNuxt (node_modules/@nuxt/kit/dist/index.mjs:36:11)
  at normalizeTemplate (node_modules/@nuxt/kit/dist/index.mjs:2988:18)
  at node_modules/nuxt/dist/index.mjs:5439:47
  at Array.map (<anonymous>)
  at generateApp (node_modules/nuxt/dist/index.mjs:5439:33)
  at async _applyPromised (node_modules/perfect-debounce/dist/index.mjs:54:10)

対処方法

対応策としては主に2通り考えられます。

  1. 一度再起動するとエラーが表示されなくなるため、そのまま問題なしとする。
  2. Nuxt: 3.14固定で起動する参考

実際に①を試したところ、再起動後はエラーが表示されなくなり、ビルド・テストも特に問題なく通りました。
また、手動で nuxt.config.tscompatibilityを追加した場合もエラーは発生しませんでした。

②の対応策(Nuxt: 3.14 に固定)も試したところ、同様にエラーは発生しませんでした。

最終的な対応としては、①の方法でCIも含めて問題なさそうだったため、①で進めました。

参考サイト

Discussion