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 チームによってサポートされています。このチームは、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 アダプタのソースは firebase-framework-tools で入手できます。
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 20 以降
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 | 有効 | 2025-10-9 以降 |
| 15.1.x | 有効 | 2025 年 10 月 9 日以降 |
| 15.2.x | 有効 | - |
Angular のサポート スケジュール
| バージョン | ステータス | 非推奨 |
|---|---|---|
| 18.2.x | lts | 2026-10-9 |
| 19.0.x | 有効 | 2025 年 10 月 9 日以降 |
| 19.1.x | 有効 | 2025 年 10 月 9 日以降 |
| 19.2.x | 有効 | - |
ベースイメージの自動更新(ABIU)
自動ベースイメージ更新(ABIU)は、新しいアプリのロールアウトをトリガーしなくても、基盤となるランタイム環境にセキュリティ パッチを自動的に適用する機能です。
App Hosting は、次の特定の要件を満たす新しいバックエンドで ABIU を有効にするようにデフォルト設定されています。
- バージョン付きランタイム: ABIU を使用するには、バージョン付きランタイム(
nodejs20、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 ダッシュボードの [設定] タブでいつでも表示および変更できます。ただし、新しいバージョンがコードと互換性がない場合、ランタイム バージョンを変更するとアプリケーションが破損する可能性があることに注意してください。
ランタイム バージョンは最終的にサポート ライフサイクルの終了を迎えます。破壊的変更を回避するため、ランタイムを常に最新の状態に保つことが重要です。
- 非推奨のランタイム: 選択したランタイムが非推奨になっても、通常はアプリケーションは引き続き動作します。コンソールに警告が表示されるため、できるだけ早く新しいバージョンに移行する必要があります。詳細については、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 ベースのアプリをサポートしています。詳細なガイダンスについては、App Hosting でモノレポを使用するをご覧ください。
次の Nx バージョンがサポートされています。
| バージョン | ステータス | 非推奨 |
|---|---|---|
| 19.5.x | メンテナンス | 2025-10-9 |
| 19.6.x | メンテナンス | 2025-10-9 |
| 19.7.x | メンテナンス | 2025-10-9 |
| 19.8.x | lts | 2026-10-9 |
| 20.0.x | 有効 | 2025-10-9 以降 |
| 20.1.x | 有効 | 2025 年 10 月 9 日以降 |
| 20.2.x | 有効 | 2025-10-9 以降 |
| 20.3.x | 有効 | 2025-10-9 以降 |
| 20.4.x | 有効 | 2025 年 10 月 9 日以降 |
| 20.5.x | 有効 | 2025-10-9 以降 |
| 20.6.x | 有効 | 2025 年 10 月 9 日以降 |
| 20.7.x | 有効 | — |
他のタイプのモノレポ ワークスペースのサポートが必要な場合は、Firebase UserVoice までお知らせください。