[未解決]Nuxt3で色々エラー

2時間くらい色々やって、解決しないので記録していく。

発端:
yarn devでテストし終わって、NODE_OPTIONS="--max-old-space-size=8096" yarn generateしようとしたら、file-saverが無いというエラーが出た。
なんか色々やってたら違うエラーから違うエラーにハマり、謎にNuxt2からNuxt3に移行しようとしたりして、出口がなくなっている。

16:20
現在のエラー

% yarn dev                                     
⚡️ Nuxt Generation CLI Experience (nuxi v3.11.1)                                                                             4:25:48 PM

USAGE nuxi add|analyze|build-module|build|cleanup|_dev|dev|devtools|generate|info|init|module|prepare|preview|start|test|typecheck|upgrade

COMMANDS

           add    Create a new template file.                                          
       analyze    Build nuxt and analyze production bundle (experimental)              
  build-module    Helper command for using @nuxt/module-builder                        
         build    Build Nuxt for production deployment                                 
       cleanup    Clean up generated Nuxt files and caches                             
          _dev    Run Nuxt development server (internal command to start child process)
           dev    Run Nuxt development server                                          
      devtools    Enable or disable devtools in a Nuxt project                         
      generate    Build Nuxt and prerender all routes                                  
          info    Get information about Nuxt project                                   
          init    Initialize a fresh project                                           
        module    Manage Nuxt modules                                                  
       prepare    Prepare Nuxt for development/build                                   
       preview    Launches Nitro server for local testing after nuxi build.          
         start    Launches Nitro server for local testing after nuxi build.          
          test    Run tests                                                            
     typecheck    Runs vue-tsc to check types throughout your app.                   
       upgrade    Upgrade Nuxt                                                         

Use nuxi <command> --help for more information about a command.


 ERROR  No command specified. 
 % yarn build  
Nuxt 3.11.2 with Nitro 2.9.6                                                                                                 4:26:27 PM

 ERROR  Cannot read properties of undefined (reading 'hook')                                                                 4:26:28 PM

  at nuxtBootstrapVue (node_modules/bootstrap-vue/nuxt/index.js:34:13)
  at installModule (node_modules/@nuxt/kit/dist/index.mjs:2415:101)
  at async initNuxt (node_modules/nuxt/dist/index.mjs:4233:7)
  at async loadNuxt (node_modules/nuxt/dist/index.mjs:4331:5)
  at async Module.loadNuxt (node_modules/@nuxt/kit/dist/index.mjs:2570:19)
  at async Object.run (node_modules/nuxi/dist/chunks/build.mjs:70:18)
  at async runCommand$1 (node_modules/nuxi/dist/shared/nuxi.9edf0930.mjs:1648:16)
  at async runCommand$1 (node_modules/nuxi/dist/shared/nuxi.9edf0930.mjs:1639:11)
  at async runMain$1 (node_modules/nuxi/dist/shared/nuxi.9edf0930.mjs:1777:7) 

yarn devは無いと言われる。yarn buildではhookとやらが無いと言われる。
% yarn dev devやってみたら、yarn buildと同じエラーが出た。

なんで% yarn devはできなくなって% yarn dev devというのができるようになってるのか。わからない。

Cannot read properties of undefined (reading 'hook')
このエラーから解決していきたい。

https://zenn.dev/sukezane/scraps/7f0eefc2971ae4

効かない:package-lock.json, node_modulesを消してyarn install

% yarn dev dev 
Nuxt 3.11.2 with Nitro 2.9.6                                                                                                 4:33:41 PM
                                                                                                                             4:33:41 PM
  ➜ Local:    http://localhost:3000/
  ➜ Network:  use --host to expose


 ERROR  Cannot start nuxt:  Cannot read properties of undefined (reading 'hook')  

bootstrap-vueはvue3では動かないらしい。
% yarn remove bootstrap-vue
% yarn add bootstrap-vue-next

次のエラー

 ERROR  Cannot restart nuxt:  Cannot read properties of undefined (reading 'options')                                        4:39:14 PM

  at axiosModule (node_modules/@nuxtjs/axios/lib/module.js:12:13)

axiosは元から使ってなかったので、消しちゃう。
% yarn remove @nuxtjs/axios
Nuxt.config.jsからも関連部分を削除。

次のエラー

 ERROR  Cannot start nuxt:  Cannot destructure property 'nuxt' of 'this' as it is undefined.                                 4:42:29 PM

  at pwa (node_modules/@nuxtjs/pwa/dist/pwa.js:733:10)

pwaも使ってないので消しちゃう。
% yarn remove @nuxtjs/pwa
Nuxt.config.jsからも関連部分を削除。

次のエラー

 ERROR  Cannot start nuxt:  Cannot read properties of undefined (reading 'dev')                                              4:44:32 PM

  at module.exports (node_modules/@nuxt/content/lib/index.js:15:18)

@nuxt/content内のエラーらしい。使ってないから消しちゃう。

% yarn remove @nuxt/content
Nuxt.config.js,tsconfig.jsonからも関連部分を削除。

次のエラー

 ERROR  Cannot start nuxt:  Cannot find module '/Users/tenna/Desktop/Customers/HajimeNavi/manageWeb/hajimenavi_manage/@nuxtjs/firebase'

nuxt.config.jsのmodulesの@nuxtjs/firebaseをfirebaseに置き換え。

意味なし。

modulesじゃなくてnitroを使ってみると解決

次のエラー

 ERROR  Cannot restart nuxt:  Cannot read properties of undefined (reading 'fontawesome')                                    4:53:32 PM

  at module (node_modules/nuxt-fontawesome/lib/module.js:9:56)

modulesにnuxt-fontawesomeいらないようだから消す

次のエラー

../plugins/fontawesome.js has no default export and will be ignored at build time. Add export default defineNuxtPlugin(() => {}) to your plugin.

..plugins/vue2-google-maps.js has no default export and will be ignored at build time. Add export default defineNuxtPlugin(() => {}) to your plugin.

../plugins/persistedstate.js is not wrapped in defineNuxtPlugin. It is advised to wrap your plugins as in the future this may enable enhancements.

vue2-google-mapsはvue2-google-mapsに置き換え
% yarn remove vue2-google-maps
% yarn add vue3-google-maps
vue2-google-maps.jsは消して、htmlも一部書き換え

fontawesome.jsをvue3用に書き換え。

vuex-persistedstateはもうサポートされてないので@pinia-plugin-persistedstate/nuxtを使う。

% yarn dev dev
エラーがなくなった!!

17:10

次のエラー

% yarn build
Nuxt 3.11.2 with Nitro 2.9.6                                                                                                        5:13:12 PM
ℹ Building client...                                                                                                               5:13:14 PM
ℹ vite v5.2.12 building for production...                                                                                          5:13:14 PM
ℹ ✓ 63 modules transformed.                                                                                                        5:13:14 PM

 ERROR  x Build failed in 438ms                                                                                                     5:13:14 PM


[5:13:14 PM]  ERROR  Nuxt Build Error: [vite]: Rollup failed to resolve import "vuex" from "/Users/.../pages/new_records.vue".

nuexはpiniaに置き換えられるらしい

https://zenn.dev/aoken/articles/43358392ffcc77

頑張って移行。

次のエラー

 ERROR  Pre-transform error: Missing "./types/options" specifier in "vue" package   

Vue.extendからdefineComponentに移行。

次のエラー

 ERROR  Nuxt Build Error: [commonjs--resolver] Missing "./types" specifier in "vue" package

vue3に対応してないパッケージがある?

node-sass と sass-loaderはdeprecatedらしい。
sassは奇跡的に使ってなかったので、削除しちゃう。
eslintも消しちゃう。

18:00

export default {をexport default defineNuxtConfig({に置き換え
ると

Package subpath './types' is not defined by "exports"

import { defineNuxtConfig } from 'vue/types';じゃ無くてimport { defineNuxtConfig } from 'nuxt/config'だった

しかしMissing "./types" specifierエラーは消えないので、
nuxt.config.jsに以下を追加

vite: {
    resolve: {
      alias: {
        '@': '/absolute/path/to/your/src',
        'vue': 'vue/dist/vue.esm-bundler.js'
      }
    }
  }

yarn dev devなんていう変なのを使ってたのは、"script"->"dev"がおかしかったからだ。
修正。
"dev": "NODE_OPTIONS=--max_old_space_size=8096 nuxt dev",

yarn buildをしてみるとどうやら無限ループに陥ってMacが固まった。

ではyarn devをやってみる。localhostに最新のコードが反映されないので、publicフォルダ内を消してみると、このエラー

Importing binding name 'DocumentData' is not found.

19:20

ここでエラーが起きてるぽい
import { DocumentData } from "firebase/firestore";
ChatGPTに質問しても解決しなかったので、チケットを挙げちゃう。
https://github.com/firebase/firebase-js-sdk/issues/8273

Geminiに聞いてみたら、allowJsをfalseにしろ、tsconfig.jsonを消せと言われた。

すると新しくこのエラーが出てきた。
[uncaughtException] proxyReq.appendHeader is not a function

20:30

もう新しいプロジェクトを作って移行しちゃおうと思う。半日無駄にした。

20:50

改めてプロジェクトを作り始めて、
npx nuxi@latest init projectname
クリーンなプロジェクトで
npm run devやってみると

500
undefined is not an object (evaluating 'route.meta')
run@http://localhost:3000/_nuxt/node_modules/.cache/vite/client/deps/chunk-6LRXACK2.js:435:21
...

何これ。。。
エラー地獄からは逃げられないの。。。

21:10

元のプロジェクトに戻って足掻いたりしてみた。
nodeを何回18.17.0にアップグレードしても17.0.0に戻っちゃうので、再度アップグレード。

するとエラーが変わった。
'text/html' is not a valid JavaScript MIME type.

これでもなんのこっちゃわからないので、Issueを挙げちゃう。

https://github.com/nuxt/nuxt/issues/27403


この記事が気に入ったらサポートをしてみませんか?