适用于 App Hosting 的框架和工具

Firebase App Hosting 专为支持以框架为中心的现代 Web 应用开发而设计。本页面可作为 App Hosting 直接支持的工具和框架的参考,也可作为了解相关框架和工具的切入点。

Web 框架和 App Hosting

App Hosting 为现代 Web 框架提供两个广泛的支持级别:预配置的构建和部署支持,以及通过符合输出软件包规范的开源贡献提供的社区级支持。在这两种情况下,框架适配器组件都支持将特定框架与 App Hosting 集成。

具有预配置的构建和部署支持的框架

借助预配置的构建和部署支持,Firebase 可以通过检查 package-lock.json 文件或其他锁定文件来识别您使用的框架,并优化应用的构建和部署流程。Google 致力于维护对这些框架的支持,Firebase 支持团队可以接受问题报告和功能请求。

此支持级别适用于:

  • Next.js
  • Angular

如需详细了解特定版本和支持级别,请参阅支持时间表。

如果您尝试部署缺少锁定文件的 Node.js 应用,App Hosting 将无法构建和运行您的应用。您可以通过在根目录中运行 npm install 来创建 package-lock.json。

社区支持的框架

除了 Next.js 和 Angular 之外,App Hosting 还支持任何能够提供与我们的输出软件包规范相匹配的 build 输出的 Web 框架。框架作者可以利用输出软件包规范来确保其框架受 App Hosting 支持。例如,热门的 Nuxt 框架由 Nitro 团队提供支持,他们构建了一个 Firebase 适配器,以便在 App Hosting 上部署 Nuxt 应用。

如果您希望看到 App Hosting 支持的其他框架,可以创建框架适配器,或与框架的维护者联系,将构建输出转换为 App Hosting 格式。Next.js 和 Angular 适配器是创建适配器的良好参考示例。

如需了解社区支持的框架,请访问 Firebase 开源。社区支持的框架的问题和功能请求应提交给开源社区或框架作者。在某些情况下,Google 或许能够提供帮助,但社区才是这些适配器的第一线支持。

App Hosting 个框架适配器

在 App Hosting 中,通过框架适配器提供对预配置框架和社区支持的框架的支持。App Hosting 框架适配器有两个关键角色:

  • 它们会解析您的源代码和任何特定于框架的配置文件(例如 next.config.js),并生成可由 App Hosting 基础架构的其余部分处理的输出软件包。
  • 它们会运行应用的 build 命令来生成静态资源,并创建应用的优化版本以用于生产环境。

框架适配器使用 npm run build 构建 Node.js 应用,最适合与每个框架的默认构建脚本搭配使用:Next.js 的 next build 和 Angular 的 ng build。App Hosting 将尝试使用自定义构建命令进行构建,但无法可靠地保证成功。您可以在 apphosting.yaml 中替换 build 和运行脚本。

Next.js 和 Angular 适配器的源代码可在 apphosting-adapters 中找到。

App Hosting的运行时

在由 App Hosting 构建和发布后,您的 Node.js 应用将在 Cloud Run 修订版本中运行。因此,应用的运行时版本应同时在 Cloud Run 的支持范围和所选 Web 框架的范围内。对于 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 有效 不早于 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 支持偶数 Node.js 版本,与 Cloud Run 的支持一致。
  • package.json 匹配:您为 App Hosting 选择的 Node 版本必须与 package.json 文件的 engines 字段中指定的版本兼容。如果存在不匹配,您会遇到来自 Cloud Build 的构建时错误。每当您更改 engines 字段时,请务必在部署之前更新后端的运行时。

停用 ABIU

如果您想停用 ABIU,可以在初始配置期间停用,也可以在 Firebase 控制台中为运行时选择未指定。使用无版本 nodejs 默认值时,ABIU 会自动停用。

管理运行时版本

您可以随时在 App Hosting 信息中心的设置标签页中查看和更改后端的运行时版本和 ABIU 偏好设置。但请注意,如果新版本与您的代码不兼容,更改运行时版本可能会破坏您的应用。

运行时版本最终会达到其支持生命周期的终点。请务必及时更新运行时,以免发生破坏性更改:

  • 已弃用的运行时:如果您选择的运行时已被弃用,您的应用通常会继续运行。您会在控制台中收到警告,并且应尽快迁移到较新版本。 如需了解详情,请参阅运行时生命周期的 Cloud Run 文档。
  • 已停用的运行时:已停用的运行时完全不受支持。您将无法使用已停用的版本创建新的 build 或后端,尝试这样做会抛出 build 错误。在已停用的版本上运行的现有部署可能会停止运行,并且 Cloud Run 保留删除这些部署的权利。

如需查看受支持、已弃用和已停用的 Node 版本的完整列表,请参阅 Cloud Run 运行时支持文档。如需详细了解基础映像更新的工作原理,请参阅 Cloud Run ABIU 文档。

软件包管理系统

App Hosting 使用 Cloud Native Buildpack 执行依赖项安装,并使用 npm、yarn 或 pnpm 构建应用。不支持其他软件包管理器,例如 JSR。

NPM

  • NPM 是默认的软件包管理系统。
  • 构建成功后,系统会剪除生产环境以外的依赖项。
  • 您可以使用 package.json 文件中的 engines.npm 字段指定 npm 版本部分。

纱线

  • 如果您在项目中添加 yarn.lock 文件,则系统会改用 Yarn。
  • 您可以在 package.json 文件的 engines.yarn 或 packageManager 字段中指定要使用的 Yarn 版本。
  • App Hosting 支持 Yarn2 PnP 模式。

Pnpm

  • 如果您在项目中添加 pnpm-lock.yaml 文件,则系统会改用 Pnpm。
  • 您可以在 package.json 文件的 engines.pnpm 或 packageManager 字段中指定 pnpm 的版本。
  • 如需查看有效示例,请参阅 sample-node-pnpm 应用。

App Hosting 的 Monorepo

App Hosting 支持 Nx 和 Turborepo monorepo 应用。如需详细指导,请参阅将 monorepo 与 App Hosting 搭配使用。

支持以下 Nx 版本:

版本 状态 弃用
20.8.x lts 不早于 2027-10-9

如果您需要其他类型的 monorepo 工作区支持,请通过 Firebase UserVoice 告知我们。