Firebase App Hosting разработан специально для поддержки разработки современных веб-приложений, ориентированных на фреймворки. На этой странице вы найдете информацию об инструментах и фреймворках, которые напрямую поддерживаются App Hosting, а также ссылки на ресурсы, где можно узнать о связанных фреймворках и инструментах.
Веб-фреймворки и App Hosting
App Hosting обеспечивает два уровня поддержки современных веб-фреймворков: предварительно настроенную поддержку сборки и развертывания, а также поддержку на уровне сообщества за счет вкладов в ПО с открытым исходным кодом, соответствующих спецификации выходного пакета. В обоих случаях интеграция фреймворка с App Hosting выполняется с помощью компонента адаптера фреймворка.
Фреймворки с предварительно настроенной поддержкой сборки и развертывания
Благодаря предварительно настроенной поддержке сборки и развертывания Firebase определяет, какой фреймворк вы используете, проверяя файл package-lock.json или другой файл блокировки, и оптимизирует процессы сборки и развертывания для вашего приложения. Google стремится поддерживать эти фреймворки, а служба поддержки Firebase может принимать отчеты о проблемах и запросы на добавление функций.
Такая поддержка предоставляется для следующих продуктов:
- Next.js;
- Angular
Подробную информацию о конкретных версиях и уровнях поддержки можно найти в расписании поддержки.
Если вы попытаетесь развернуть приложение Node.js, в котором отсутствует файл блокировки, App Hosting не сможет собрать и запустить приложение. Вы можете создать файл package-lock.json, выполнив команду npm install в корневом каталоге.
Фреймворки, поддерживаемые сообществом
Помимо Next.js и Angular, App Hosting также поддерживает любой веб-фреймворк, который может предоставить выходные данные сборки, соответствующие нашей спецификации выходного пакета. Авторы фреймворков могут использовать спецификацию выходного пакета, чтобы обеспечить поддержку своего фреймворка в App Hosting. Например, популярный фреймворк Nuxt поддерживается командой Nitro, которая создала адаптер Firebase, чтобы обеспечить развертывание приложений Nuxt в App Hosting.
Если вы хотите, чтобы App Hosting поддерживал дополнительные фреймворки, вы можете создать адаптер фреймворка или обратиться к разработчикам фреймворка, чтобы преобразовать выходные данные сборки в формат App Hosting. Адаптеры Next.js и Angular – хорошие примеры для тех, кто создает адаптер.
Информацию о фреймворках, поддерживаемых сообществом, можно найти на сайте Firebase Open Source. Сообщения о проблемах и запросы на добавление функций для фреймворков, поддерживаемых сообществом, следует направлять сообществу разработчиков ПО с открытым исходным кодом или авторам фреймворка. В некоторых случаях Google может помочь, но в первую очередь поддержку по этим адаптерам оказывает сообщество.
App Hosting адаптер фреймворка
В App Hosting поддержка как предварительно настроенных, так и поддерживаемых сообществом фреймворков обеспечивается с помощью адаптеров фреймворков. Адаптеры фреймворка App Hosting выполняют две основные роли:
- Они анализируют исходный код и файлы конфигурации фреймворка (например,
next.config.js) и генерируют выходной пакет, который может быть обработан остальной инфраструктурой App Hosting. - Они запускают команду сборки приложения, чтобы сгенерировать статические объекты и создать оптимизированную рабочую версию приложения.
Адаптеры фреймворков создают приложение Node.js с помощью npm run build, лучше всего работая со скриптами сборки по умолчанию для каждого фреймворка: next build для Next.js и ng build для Angular. App Hosting попытается выполнить сборку с помощью пользовательских команд, но не может гарантировать успех. Вы можете переопределить скрипты сборки и запуска в apphosting.yaml.
Исходный код адаптеров Next.js и Angular доступен в репозитории apphosting-adapters.
Среды выполнения для App Hosting
После сборки и развертывания в App Hosting приложение Node.js запускается в версии Cloud Run. Соответственно, версия среды выполнения для вашего приложения должна находиться в пределах поддерживаемого диапазона Cloud Run и диапазона выбранного вами веб-фреймворка. Для предварительно настроенной поддержки Angular и Next.js это означает, что поддерживаются следующие версии фреймворка и Node.js:
- Next.js 13.5.x и более поздних версий;
- Angular 18.2.x и более поздних версий;
- Node.js 22 и более поздних версий;
App Hosting не предоставляет автоматическую поддержку для новых версий фреймворков. Версии, выпущенные после текущей активной версии, будут считаться предварительными, пока не получат статус активных для App Hosting.
App Hosting поддерживает долгосрочную поддержку (LTS) для последней промежуточной версии основного выпуска в течение одного года с момента его активного периода поддержки, при условии, что вы постоянно обновляетесь до последних выпусков исправлений в этой промежуточной версии. Подробные сведения о Next.js и Angular приведены в таблицах ниже.
График поддержки Next.js
| Версия | Статус | Прежней версии |
|---|---|---|
| 13.5.x | lts | 2026-10-9 |
| 14.2.x | lts | 2026-10-9 |
| 15.0.x | lts | 2027-10-9 |
| 15.1.x | lts | 2027-10-9 |
| 15.2.x | активно | не ранее 9 октября 2026 г. |
График поддержки Angular
| Версия | Статус | Прежней версии |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | lts | 2027-10-9 |
| 19.1.x | lts | 2027-10-9 |
| 19.2.x | активно | - |
Автоматическое обновление базовых образов
Автоматическое обновление базового образа – это функция, которая автоматически применяет исправления системы безопасности к базовой среде выполнения, не требуя от вас запуска нового развертывания приложения.
В App Hosting по умолчанию включено обновление образов на основе ABI для новых серверных частей со следующими требованиями:
- Версии среды выполнения. Чтобы использовать ABIU, необходимо указать версию среды выполнения (например,
nodejs22илиnodejs24). App Hosting поддерживает четные версии Node.js, как и Cloud Run. - Соответствие package.json. Версия Node, которую вы выбираете для App Hosting, должна быть совместима с версией, указанной в поле
enginesфайлаpackage.json. Если они не совпадают, то при сборке Cloud Build возникнет ошибка. При изменении поляenginesне забудьте обновить среду выполнения серверной части перед развертыванием.
Отключение ABIU
Если вы хотите отказаться от ABIU, вы можете отключить его во время регистрации или выбрав Не указано для среды выполнения в консоли Firebase. Если используется версия nodejs по умолчанию, ABIU автоматически отключается.
Управление версиями среды выполнения
Вы можете в любой момент посмотреть и изменить версию среды выполнения и предпочтительный ABIU на вкладке Настройки на панели управления App Hosting. Однако помните, что изменение версии среды выполнения может нарушить работу приложения, если новая версия несовместима с вашим кодом.
У версий среды выполнения есть срок поддержки. Важно своевременно обновлять среды выполнения, чтобы избежать критических изменений.
- Устаревшие среды выполнения. Если выбранная вами среда выполнения устареет, ваше приложение, как правило, продолжит работать. В консоли появится предупреждение, и вам нужно будет как можно скорее перейти на более новую версию. Подробную информацию вы найдете в документации по Cloud Run, посвященной жизненному циклу среды выполнения.
- Выведенные из эксплуатации среды выполнения. Выведенные из эксплуатации среды выполнения полностью не поддерживаются. Вы не сможете создавать новые сборки или серверные части, используя выведенную из эксплуатации версию. При попытке сделать это возникнет ошибка сборки. Существующие развертывания, работающие на выведенных из эксплуатации версиях, могут перестать работать, и Cloud Run оставляет за собой право удалить их.
Полный список поддерживаемых, устаревших и выведенных из эксплуатации версий Node приведен в документации по поддержке среды выполнения Cloud Run. Дополнительную техническую информацию о том, как работают обновления базового образа, можно найти в документации по ABIU для Cloud Run.
Менеджеры пакетов
App Hosting использует Cloud Native Buildpacks для установки зависимостей и создает приложение с помощью npm, yarn или pnpm. Другие менеджеры пакетов, например JSR, не поддерживаются.
NPM
- NPM – это менеджер пакетов по умолчанию.
- Зависимости, не связанные с рабочей версией, удаляются после успешной сборки.
- Вы можете указать версию npm в поле
engines.npmфайлаpackage.json.
Пряжа
- Если вы добавите в проект файл
yarn.lock, вместо npm будет использоваться Yarn. - Вы можете указать версию yarn в поле
engines.yarnилиpackageManagerфайлаpackage.json. - App Hosting поддерживает режим Yarn2 PnP.
Pnpm
- Если в проекте есть файл
pnpm-lock.yaml, используется pnpm. - Вы можете указать версию pnpm в поле
engines.pnpmилиpackageManagerфайлаpackage.json. - Пример работающего приложения можно найти в репозитории sample-node-pnpm.
Монорепозитории для App Hosting
App Hosting поддерживает монорепозитории Nx и Turborepo. Подробные инструкции приведены в статье Как использовать монорепозитории с App Hosting.
Поддерживаются следующие версии Nx:
| Версия | Статус | Прежней версии |
|---|---|---|
| 20.8.x | lts | не ранее 9 октября 2027 г. |
Если вам нужна поддержка других типов рабочих областей монорепозитория, сообщите нам об этом на сайте Firebase UserVoice.