前置き
$ 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時間かからないくらいで解決しました
やはり経験と慣れが大事と実感しています