Развертывание в Firebase Функции с монорепо - PullRequest
1 голос
/ 03 апреля 2020

Согласно функциям Firebase с рабочими пространствами Yarn , я бы хотел развернуть монорепортаж в Firebase с использованием рабочих областей Yarn. Я могу успешно развернуть «веб» в Firebase Hosting, который ссылается на общее «основное» рабочее пространство. Однако попытки сделать то же самое с рабочей областью «функции» в Firebase Functions не удаются.

Я использую рабочие области Yarn со следующей структурой папок:

packages/           
  core/             // name: firebase-monorepo-core: custom core package
  functions/        // name: firebase-monorepo-functions: firebase functions package
  web/              // name: firebase-monorepo-web: react package

Они были настроены в файл root package.json:

"workspaces": {
    "packages": [
        "packages/*"
    ],
    "nohoist": [
        "**/firebase-monorepo-core"
    ]
}

В попытке включить рабочие пространства Yarn в Firebase (и, следовательно, поделиться своим пакетом core), я использовал функцию nohoist для создания символических ссылок на рабочее пространство core в functions и web согласно twiz ' Stackoverflow ответ .

Пакет core также существует как зависимость в functions и web:

"dependencies": {
    "firebase-monorepo-core": "*"
}

Нет проблем, когда все это выполняется локально, и фактически развертывание пакета web на хостинге Firebase работает нормально. Однако развертывание пакета functions для функций Firebase приводит к ошибке:

Firebase functions deployment error

Я создал репозиторий Github https://github.com/cjmyles/firebase-monorepo , чтобы продемонстрировать это, и результирующее рабочее пространство web можно просмотреть в https://fir-monorepo.firebaseapp.com.

. Я могу получить пакет functions для развертывания, если я yarn pack core рабочее пространство и ссылаться на него как тарбол в файле package.json, но мне действительно не нравится это решение, и для его автоматизации потребуются дополнительные издержки.

Любой совет будет признателен за решение этой проблемы. выпуск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...