Firebase Hosting では、1つのプロジェクトで複数サイトをホスティングできます。
その時の最低限の設定のメモです。
手順
0. 前提
Firebase CLI の導入
npm install -g firebase-tools
2つめのサイト用意
今回は second-web.web.app
とします。
1. ターゲットを設定
firebase target:apply hosting <target-name> <resource-name>
パラメータ | 中身 |
---|---|
target-name | なんでもいいです。独自でわかるように設定します。今回は second とします。 |
resource-name | 自分で設定したサブドメイン。今回は second-web です。 |
ここでの各パラメータが何を指してるのかよくわからず、手間取りました。
上記コマンドを実行すると .firebaserc
が下記のように自動で書き換えられます。
.firebaserc
{
"projects": {
"default": "<プロジェクト名>"
},
"targets": {
"<プロジェクト名>": {
"hosting": {
"<target-name>": [
"<resource-name>"
]
}
}
}
}
2. firebase.json を編集
firebase.json
の hosting
内に "target:": "<target-name>"
を追記します。
<target-name> は上記で既出のパラメータです。
複数サイトを別ディレクトリで管理している場合
複数サイトを別々のディレクトリで管理している(=各サイトに firebase.json
が用意されている)場合は、下記のようにtargetを追記します。
firebase.json
{
"hosting": {
"target": "second",
...
}
}
複数サイトを同じディレクトリ内で管理している場合
複数サイトを同じディレクトリ内で管理している(=複数サイトを1つの firebase.json
で管理する)場合は、下記のように配列にして各サイトのtargetを追記します。
firebase.json
{
"hosting": [{
"target": "first",
"public": "dist/one",
...
}, {
"target": "second",
"public": "dist/two",
...
}]
}
3. デプロイ
firebase deploy
# ディレクトリにある全てのターゲットをデプロイします。
# つまり、このコマンドを叩くディレクトリに2つ目のサイト(second-web.web.app)のファイルのみがある場合、
# 2つ目のサイトしかデプロイされません。
firebase deploy --only hosting:<target-name>
# 指定した特定のターゲットのみデプロイ