Firebase App Hosting 专为支持以框架为中心的现代 Web 应用开发而设计。您可以将本页作为参考,了解 App Hosting 直接支持的工具和框架,也可以从本页出发,了解相关框架和工具。
Web 框架和 App Hosting
App Hosting 为现代 Web 框架提供两个广泛的支持级别:预配置的构建和部署支持,以及通过符合输出软件包规范的开源贡献提供的社区级支持。在这两种情况下,框架适配器组件都能实现特定框架与 App Hosting 的集成。
具有预配置的 build 和部署支持的框架
借助预配置的构建和部署支持,Firebase 会通过检查 package-lock.json
文件或其他锁定文件来识别您使用的框架,并针对您的应用优化构建和部署流程。Google 致力于维护对这些框架的支持,Firebase 支持团队可以接受问题报告和功能请求。
此级别的支持适用于:
- Next.js
- Angular
如需详细了解具体版本和支持级别,请参阅支持时间表。
如果您尝试部署缺少锁定文件的 Node.js 应用,App Hosting 将无法构建和运行您的应用。您可以在根目录中运行 npm install
来创建 package-lock.json
。
社区支持的框架
除了 Next.js 和 Angular,App Hosting 还支持任何能够提供符合我们输出软件包规范的 build 输出的网络框架。框架作者可以利用输出软件包规范来确保其框架受 App Hosting 支持。例如,热门的 Nuxt 框架由 Nitro 团队提供支持,该团队构建了一个 Firebase 适配器,以实现在 App Hosting 上部署 Nuxt 应用。
如果您希望 App Hosting 支持其他框架,可以创建框架适配器,也可以与框架的维护人员联系,将 build 输出转换为 App Hosting 格式。Next.js 和 Angular 适配器是创建适配器的任何人的良好参考示例。
如需了解社区支持的框架,请访问 Firebase 开源。 对于社区支持的框架,问题和功能请求应直接向开源社区或框架作者提出。在某些情况下,Google 可能会提供帮助,但对于这些适配器,社区是第一道支持防线。
App Hosting 框架适配器
在 App Hosting 中,通过框架适配器提供对预配置框架和社区支持框架的支持。App Hosting 框架适配器有两项关键作用:
- 它们会解析您的源代码和任何框架特定的配置文件(例如
next.config.js
),并生成可由 App Hosting 基础架构的其余部分处理的输出软件包。 - 它们会运行应用的 build 命令来生成静态资源,并为正式版创建应用的优化版本。
框架适配器使用 npm run build
构建 Node.js 应用,与每个框架的默认 build 脚本搭配使用效果最佳:next build
(适用于 Next.js)和 ng build
(适用于 Angular)。App Hosting 将尝试使用自定义构建命令进行构建,但无法可靠地保证成功。您可以在 apphosting.yaml
中替换 build 和运行脚本。
Next.js 和 Angular 适配器的源代码可在 firebase-framework-tools 中找到。
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 18 及更高版本
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 | 有效 | 不早于 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 | 有效 | - |
软件包管理器
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 的应用。如需详细指导,请参阅将 monorepo 与 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 | 有效 | — |
如果您需要针对其他类型的 monorepo 工作区提供支持,请前往 Firebase UserVoice 告知我们。