Nuxt3をSSRでFirebase Hostingにデプロイしようとしたときにエラーになり詰まったのでメモ
バージョン
- Nuxt 3.3.3
- Firebase 9.9.1
- Firebase functions 4.4.1
エラー
CDからfirebase deploy
でデプロイしようとしたところ以下のエラーが発生
=== Deploying to 'project'...
i deploying functions, hosting
i functions: preparing codebase default for deployment
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
✔ functions: required API cloudfunctions.googleapis.com is enabled
✔ artifactregistry: required API artifactregistry.googleapis.com is enabled
✔ functions: required API cloudbuild.googleapis.com is enabled
Error: Failed to find location of Firebase Functions SDK. Please file a bug on Github (https://github.com/firebase/firebase-tools/).
firebase deploy --debug
で詳細を見てみる
[2023-08-11T09:35:49.979Z] Building nodejs source
[2023-08-11T09:35:49.981Z] Could not find functions.yaml. Must use http discovery
Error: Failed to find location of Firebase Functions SDK. Please file a bug on Github (https://github.com/firebase/firebase-tools/).
対応
functions.yaml
がないとのことだが、諸々調べてみたところ以下の様に、手動でファイルをコピーすれば良さそうとのこと
コメントを参考に以下を実行してから firebase deploy
で問題なくデプロイできた
$ mkdir .output/server/node_modules/.bin
$ cp -r node_modules/.bin/firebase-functions .output/server/node_modules/.bin
$ rm -rf .output/server/node_modules/firebase-functions/node_modules/protobufjs
$ cp -rfu node_modules/firebase-functions/ .output/server/node_modules