firebase

【Nuxt.js】firebase deploy エラーとoverwrite対処法

前置き

$ firebase deploy

デプロイ時に直面した2点の問題を、備忘録的に残しておきます✍️

⬇️基本的な流れはこちらをご覧ください👀


$ firebase deploy のエラー

エラー内容

deployしたいfirebaseプロジェクトでは、まだHostingを使用していない状態です。

Error: HTTP Error: 404, Requested entity was not found.

このコマンドでエラーがどこにあるか分かるらしい💭

$ node --trace-warnings

Welcome to Node.js v14.16.0.

nodeのバージョンが出てきました。
v14.16.0にしてみましたが関係ありませんでした。

バージョンについてはここが参考になります。
Macでnodeのバージョン切り替え -nodebrew の使い方-


解決

ここを参考にしたら解決しました。
1つのプロジェクトで複数のサイトを管理したい場合の話っぽいです。
まだ1つもdeployしてないのに今回なぜそのようなことが起こったのかは不明です💦
Firebase deploy時のエラー Error: HTTP Error: 404, Requested entity was not found.

target-name: 任意の値
resource-name: FireabseプロジェクトのID

$ firebase target:apply hosting <target-name> <resource-name>

あとはfirebase.jsonにtargetを追記✍️


1つのプロジェクトで複数のサイトをdeployしたい場合

Hosting画面を開くと下または右の方に「別のサイトを追加」があるので押します。

SITE_IDを作ります。
SITE_IDは…

こちらに書かれているRESOURCE_IDENTIFIERの部分で説明されているSITE_IDです。
Hosting のデプロイ ターゲットを設定する


$ firebase init で Overwrite を yes にしてしまった場合

対処方法

対処法は最初にエディターを開いておいて、overwriteする前のコードに戻す、です。
つまりエディター開かずにやると対処できないっぽいです。
Firebase inittコマンドの際に「File public/index.html already exist. Overwrite? 」をyesにしてしまった時の対処法が知りたいです!

下にoverwriteする前のコードを貼っているので、最悪それをコピペしてください。
ただこれもバージョンによって変わったりすると思うので、万能ではありません。


overwriteするしないの違い

initするとdist内にindex.htmlが作成されます。
これをoverwriteしますか?という質問でyesにしてしまうと、色々書き換えられてしまってうまくindex.vueが表示されなくなります。

VSCならcommand + Pでファイル検索ができます。
dist/index.htmlと入れてみると該当ファイルが表示されます🌟

overwriteしない状態

overwriteした状態

結構書き変わってしまいます😯


まとめ

エラーは完全にバージョンが原因だと思っていました😂
試してみて違ったら、どうにかググって解決するしかないですね🤔💭
今回は2時間かからないくらいで解決しました❗️
やはり経験と慣れが大事と実感しています🍀

-firebase
-,

© 2021 aLiz Nuxt