Firebase App Hosting は、フレームワーク中心の最新のウェブアプリ開発をサポートするように設計されています。このページは、App Hosting が直接サポートするツールとフレームワークのリファレンスとして使用してください。また、関連するフレームワークとツールについて学習するための出発点としても使用してください。
ウェブ フレームワークと App Hosting
App Hosting は、最新のウェブ フレームワークに対して、事前構成済みのビルドとデプロイのサポートと、出力バンドル仕様に準拠したオープンソースのコントリビューションによるコミュニティ レベルのサポートという 2 つの幅広いレベルのサポートを提供します。どちらの場合も、フレームワーク アダプタ コンポーネントにより、特定のフレームワークと 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 チームによってサポートされています。Nitro チームは、App Hosting への Nuxt アプリのデプロイを可能にする Firebase アダプタを構築しました。
App Hosting でサポートされている追加のフレームワークを確認する場合は、フレームワーク アダプタを作成するか、フレームワークのメンテナーに連絡して、ビルド出力を App Hosting 形式に変換します。Next.js と Angular のアダプタは、アダプタを作成する際の参考例として適しています。
コミュニティがサポートするフレームワークについては、Firebase オープンソースをご覧ください。コミュニティでサポートされているフレームワークに関する問題や機能リクエストは、オープンソース コミュニティまたはフレームワークの作成者に報告してください。場合によっては Google がサポートできることもありますが、これらのアダプタのサポートはコミュニティが第一線となります。
App Hosting フレームワーク アダプタ
App Hosting では、事前構成済みフレームワークとコミュニティ サポート フレームワークの両方のサポートが、フレームワーク アダプタを介して提供されます。App Hosting フレームワーク アダプタには、次の 2 つの主な役割があります。
- ソースコードとフレームワーク固有の構成ファイル(
next.config.jsなど)を解析し、残りの App Hosting インフラストラクチャで処理できる出力バンドルを生成します。 - アプリのビルドコマンドを実行して静的アセットを生成し、本番環境用に最適化されたバージョンのアプリを作成します。
フレームワーク アダプタは、npm run build を使用して Node.js アプリをビルドします。各フレームワークのデフォルトのビルド スクリプト(Next.js の場合は next build、Angular の場合は ng build)を使用すると、最適な結果が得られます。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)を、アクティブ サポート期間から 1 年間サポートします。ただし、そのマイナー バージョン内の最新のパッチリリースに一貫して更新する必要があります。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 | アクティブ | 2026 年 10 月 9 日以降 |
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 | アクティブ | - |
ベースイメージの自動更新(ABIU)
ベースイメージの自動更新(ABIU)は、新しいアプリのロールアウトをトリガーすることなく、基盤となるランタイム環境にセキュリティ パッチを自動的に適用する機能です。
App Hosting では、新しいバックエンドで ABIU がデフォルトで有効になります。これには、次の特定の要件があります。
- バージョニングされたランタイム: ABIU を使用するには、バージョニングされたランタイム(
nodejs22やnodejs24など)を指定する必要があります。App Hosting は、Cloud Run のサポートをミラーリングして、偶数番号の Node.js バージョンをサポートしています。 - package.json の一致: App Hosting に選択する Node バージョンは、
package.jsonファイルのenginesフィールドで指定されたバージョンと互換性がある必要があります。不一致がある場合は、Cloud Build からビルド時エラーが発生します。enginesフィールドを変更する場合は、デプロイする前にバックエンドのランタイムを更新してください。
ABIU の無効化
ABIU をオプトアウトする場合は、オンボーディング中に無効にするか、Firebase コンソールでランタイムに [指定なし] を選択します。バージョンなしの nodejs デフォルトが使用されている場合、ABIU は自動的に無効になります。
ランタイム バージョンの管理
バックエンドのランタイム バージョンと ABIU の設定は、App Hosting ダッシュボードの [Settings] タブでいつでも表示、変更できます。ただし、新しいバージョンがコードと互換性がない場合、ランタイム バージョンを変更するとアプリケーションが破損する可能性があることに注意してください。
ランタイム バージョンは、最終的にサポート ライフサイクルの終了に達します。互換性を破る変更を回避するには、ランタイムを最新の状態に保つことが重要です。
- 非推奨のランタイム: 選択したランタイムが非推奨になっても、通常、アプリケーションは引き続き動作します。コンソールに警告が表示されます。できるだけ早く新しいバージョンに移行する必要があります。詳細については、ランタイム ライフサイクルの Cloud Run ドキュメントをご覧ください。
- 廃止されたランタイム: 廃止されたランタイムは完全にサポートされていません。廃止されたバージョンを使用して新しいビルドやバックエンドを作成することはできません。作成しようとすると、ビルドエラーが発生します。廃止されたバージョンで実行されている既存のデプロイは動作を停止する可能性があり、Cloud Run はそれらを削除する権利を有します。
サポートされている Node バージョン、非推奨の Node バージョン、廃止された Node バージョンの完全なリストについては、Cloud Run ランタイム サポートのドキュメントをご覧ください。ベースイメージの更新の仕組みに関する技術的な詳細については、Cloud Run ABIU のドキュメントをご覧ください。
パッケージ マネージャー
App Hosting は、Cloud Native Buildpacks を使用して依存関係のインストールを実行し、npm、yarn、または pnpm を使用してアプリをビルドします。JSR などの他のパッケージ マネージャーはサポートされていません。
NPM
- npm はデフォルトのパッケージ管理システムです。
- 本番環境以外の依存関係は、ビルドが成功した後に削除されます。
- npm バージョンのセクションは、
package.jsonファイルのengines.npmフィールドで指定できます。
Yarn
- yarn を使用するには、プロジェクトに
yarn.lockファイルを含めます。 package.jsonファイルのengines.yarnフィールドまたはpackageManagerフィールドに、使用する yarn のバージョンを指定できます。- App Hosting は Yarn2 PnP モードをサポートしています。
Pnpm
- pnpm を使用するには、プロジェクトに
pnpm-lock.yamlファイルを含めます。 package.jsonファイルのengines.pnpmフィールドまたはpackageManagerフィールドで、pnpm のバージョンを指定できます。- 実際の例については、sample-node-pnpm アプリをご覧ください。
App Hosting のモノリポジトリ
App Hosting は、Nx と Turborepo のモノリポアプリをサポートしています。詳細なガイダンスについては、App Hosting で monorepo を使用するをご覧ください。
サポートされている Nx のバージョンは次のとおりです。
| バージョン | ステータス | 非推奨 |
|---|---|---|
| 20.8.x | lts | 2027 年 10 月 9 日以降 |
他のタイプの monorepo ワークスペースのサポートが必要な場合は、Firebase UserVoice でお知らせください。