Как масштабировать одну реагирующую кодовую базу на несколько проектов с плавающей базой? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть реагирующее веб-приложение, использующее бэкэнд Firebase.В настоящее время у меня есть 2 проекта, один для тестирования и один для производства.Я использую 2 разные ветви и разворачиваю их вручную, используя CLI Firebase.Я хочу масштабировать производственную площадку и иметь более 10 спин-оффов.Я хотел бы иметь свой проект Firebase для каждого сайта, использующего собственную базу данных / функции.

Каков наилучший подход для этого?Могу ли я использовать пользовательские .env.файлы, по одному на каждый проект, для хранения конфигураций проекта?

Как я могу выполнить развертывание в нескольких проектах, используя одну команду, например "firebase deploy production", которая развертывает сборку, используя правильную конфигурацию среды для каждого проекта.

1 Ответ

0 голосов
/ 19 октября 2018

Я придумал следующий подход:

1. Создайте проект firebase для каждого вращения (имея свой собственный url и db хостинга)

2. Замените переменные конфигурации firebaseнапример, projectId и api-key с переменными env:

const projectId = process.env.REACT_APP_FIREBASE_PROJECT_ID;
const apiKey = process.env.REACT_APP_FIREBASE_API_KEY;

const config = {
  apiKey,
  projectId,
  authDomain: `${projectId}.firebaseapp.com`,
  databaseURL: `https://${projectId}.firebaseio.com`,
  storageBucket: `${projectId}.appspot.com`,
};

firebase.initializeApp(config);

3. Установите переменные env независимо для каждого проекта для сборки и разверните его, указав проект с помощью опции -P

REACT_APP_FIREBASE_PROJECT_ID=<projectId> REACT_APP_FIREBASE_API_KEY=<key> yarn build && firebase deploy --only hosting -P <projectId>

4. Выполните cmd для каждого проекта (возможно, можно поместить их все в один сценарий, чтобы можно было развернуть его во всех проектах с помощью одной команды)

...