Firebase развернут на неправильном хостинге, когда используется несколько проектов - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть два проекта firebase: myapp для prod и myapp-dev для среды разработки.
Сначала я использовал firebase cli, чтобы запустить мой проект с помощью "myapp", и поэтому все файлы были сгенерированы с этим, включая ресурс хостинга myapp (чтобы я мог развернуть свое приложение на myapp.web.app).

Затем я добавил второй проект firebase ("myapp-dev"). Я запускаю эти

firebase use --add myapp-dev  # I have selected the right myapp-dev firebase project and set `dev` as short name
firebase target:apply hosting myapp-dev myapp  # note here that I also use name "myapp" as resource

Я вручную изменил свой .firebasesrc, потому что я хочу, чтобы проект dev был по умолчанию ...

Так что мой .firebasesrc выглядит так

{
  "projects": {
    "default": "myapp-dev",
    "prod": "myapp"
  },
  "targets": {
    "myapp": {
      "hosting": {
        "myapp": [
          "myapp"
        ]
      }
    },
    "myapp-dev": {
      "hosting": {
        "myapp": [
          "myapp"
        ]
      }
    }
  }
}

и firebase.json

{
  "hosting": [
    {
      "target": "myapp",
      "public": "public",
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
      "rewrites": [
        {
          "source": "**",
          "destination": "/index.html"
        }
      ]
    }
  ],
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint"
    ]
  }
}

Теперь, когда я запустил эти строки, веб-приложение было развернуто в prod env, functions - в dev dev ...

firebase use myapp-dev
firebase deploy

РЕДАКТИРОВАТЬ

Запуск firebase target:apply hosting myapp myapp-dev помог!

1 Ответ

0 голосов
/ 04 апреля 2020

Я думаю, что ваша конфигурация должна быть примерно такой:

file .firebasesrc

  "targets": {
    "myapp-dev": {
      "hosting": {
        "myapp-dev": [
          "myapp-dev"
        ],
        "myapp": [
          "myapp"
        ]
      }
    }
  }

file firebase.json:

  "hosting": [
    {
      "target": "myapp-dev",
      "public": "build",
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
      "rewrites": [
        {
          "source": "**",
          "destination": "/index.html"
        }
      ]
    },
    {
      "target": "myapp",
      "public": "dist/myapp", /* folder */
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
      "rewrites": [
        {
          "source": "**",
          "destination": "/index.html"
        }
      ]
    }
  ]

, а затем развернуть с помощью target документация

...