27
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Firebase Hosting 複数サイト管理時のデプロイの最低限の設定

Last updated at Posted at 2019-06-26

Firebase Hosting では、1つのプロジェクトで複数サイトをホスティングできます。
その時の最低限の設定のメモです。

手順

0. 前提

Firebase CLI の導入

npm install -g firebase-tools

2つめのサイト用意

今回は second-web.web.app とします。

スクリーンショット 2019-06-27 1.48.40.png

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.jsonhosting 内に "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>
# 指定した特定のターゲットのみデプロイ

参照

27
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?