EAS Hosting 简介
编辑页面
EAS Hosting 是一项用于快速部署使用 Expo Router 库和 React Native web 构建的 web 项目的服务。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
EAS Hosting 是 EAS(Expo Application Services)提供的一项服务,用于快速部署使用 Expo Router 和 React Native web 构建的 Web 项目。它与 Expo CLI 无缝集成,让你能够自动部署 API 路由、服务器函数和服务端资源。
EAS Hosting 提供了从 npx create-expo-app 到完整部署带有 API 路由和服务器函数的 Web 应用的最快路径。
快速开始
下面的eas命令需要 EAS CLI。有关更多信息,请参阅 如何安装 EAS CLI。
要部署你的 Web 应用,你需要为 Web 项目创建一个静态构建。运行以下命令将你的 Web 项目导出到 dist 目录:
- npx expo export --platform web要发布你的 Web 应用,请运行以下命令:
- eas deploy部署完成后,EAS CLI 将输出一个预览 URL,用于访问你已部署的 Web 应用。
为什么选择 EAS Hosting
从历史上看,传统的网站托管服务通常被推荐用于部署 Expo Router 和 React 应用。然而,这种方式并没有解决处理原生应用时所面临的独特挑战。以下是一些关键限制:
-
版本同步:在应用商店发布流程中,你可能需要部署服务器的新版本。
-
请求路由复杂性:不同版本的原生应用可能需要路由到特定的服务器版本。这会在处理请求时带来额外的复杂性。
-
平台特定分析:运行原生应用时,你需要针对平台特定指标的增强可观测性。
EAS Hosting 通过在所有平台上提供统一的部署体验来解决这些限制。
何时使用 EAS Hosting
| 场景 | 推荐 |
|---|---|
| 部署 Web 构建,而无需设置单独的托管服务提供商 | |
| 在你的 Expo Router 应用中使用 API 路由或服务器函数 | |
| 在 Android、iOS 和 Web 之间保持一致的部署工作流 | |
| 使用 EAS Workflows 自动化部署 | |
| 内置监控服务器端代码崩溃、日志和请求 | |
| 仅移动端项目,没有 Web 组件 | |
| 完整的 Node.js 运行时兼容性(EAS Hosting 使用带有部分 Node.js 支持的 Cloudflare Workers 运行时) | |
| 已经拥有满足需求的成熟 Web 基础设施 |
常见问题(FAQ)
我可以在 EAS Hosting 中使用哪些 Web 输出模式?
EAS Hosting 支持你在应用配置中的 expo.web.output 里配置的全部三种输出模式:
single:将你的 Expo 应用导出为单页应用,仅输出一个 index.htmlstatic:将你的 Expo 应用导出为 静态生成的 Web 应用server:支持 服务器函数 和 API 路由,以及静态页面
EAS Hosting 使用什么运行时?
EAS Hosting 基于 Cloudflare Workers 构建,它运行在 V8 JavaScript 引擎上。它使用 V8 isolate,而不是完整的 Node.js 进程。Node.js 兼容模块可用,但有一些限制。有关受支持模块的完整列表,请参阅 worker runtime reference。
我可以为生产部署设置自定义域名吗?
付费套餐提供 自定义域名。每个项目都可以为生产部署分配一个自定义域名。支持顶级域名和子域名。
如何创建部署别名?
EAS Hosting 的部署是不可变的。每个部署都会获得一个唯一的预览 URL。你可以创建 别名,为部署分配自定义名称(例如 staging 或 production)。由于部署是不可变的,你可以通过使用 eas deploy:alias --prod --id=<deploymentId> 将别名重新分配给之前的部署 ID,立即回滚。
EAS Hosting 提供哪些监控能力?
EAS Hosting 在 EAS 仪表板 中提供内置监控:
- 崩溃:查看来自 API 路由的未捕获错误,并按相似性分组
- 日志:来自 API 路由的所有
console.log、console.info和console.error输出 - 请求:请求元数据,包括状态、浏览器、区域和持续时间
我如何在 EAS Hosting 中配置缓存?
API 路由可以返回 Cache-Control 指令,EAS Hosting 会使用这些指令在其全球 CDN(内容分发网络)上缓存响应。静态资源默认的浏览器缓存时间为 3600 秒。有关详情,请参阅 Caching 参考文档。
我可以将 EAS Hosting 与 EAS Workflows 一起使用吗?
EAS Hosting 使用 deploy 作业类型与 EAS Workflows 集成。你可以在工作流配置中添加一个部署作业。例如:
jobs: deploy_web: type: deploy environment: production params: prod: true
你也可以部署到特定别名,或者基于分支有条件地设置 production:
jobs: deploy: type: deploy params: prod: ${{ github.ref_name == 'main' }}
有关更多信息,请参阅 使用 EAS Workflows 进行 Web 部署。
开始使用
在不到一分钟内,从一个新应用到一个已部署的网站。
创建别名并将部署提升到生产环境。
在你的 Web 和服务器代码中使用环境变量。
为你的生产部署设置自定义域名。
在 EAS Hosting 仪表板上查看来自 API 路由的请求。
使用 EAS Workflows 自动化部署。