# 前端网站开发

按普通静态网站或环境托管平台应用选择前端开发和发布流程。

前端开发负责浏览器中的页面、交互、状态管理和 API 调用。普通网站使用普通前端项目；工作区平台应用使用一个独立的 `PLATFORM_APPLICATION` 项目，在同一项目中保存前端源码和平台应用配置，使用 `ENVIRONMENT_HOSTED_APP` 从项目主线按精确版本构建并创建不可变应用版本。

## 两种交付方式

| 场景                         | 交付方式                                                                      |
| -------------------------- | ------------------------------------------------------------------------- |
| 普通网站、官网、活动页                | 选择 `REACT_STATIC_APPLICATION`，先执行 `buildReactProject`，再发布 Site Deployment |
| 工作区产品入口、需要平台身份或 Runtime 能力 | 选择 `PLATFORM_APPLICATION`，使用环境托管入口，发布平台应用版本并纳入 Bundle                     |

不要为上述新项目选择旧版 `WEB_APPLICATION`：它没有 `buildReactProject`，不能生成 Site Deployment 所需的不可变项目版本。

前端源代码和构建产物不直接写进 Bundle Manifest。Bundle 锁定的是平台应用版本；版本内容由同一项目 commit 中的 `baijimu.platform-application.json` 生成。

## 开发重点

- 路由和刷新行为在目标托管环境中可用。
- 环境配置不硬编码到源码。
- 浏览器端不保存长期平台密钥或后端服务密钥。
- 需要平台身份时使用平台网页授权码与 PKCE。
- 相对 API 请求通过受控网关或明确的后端 Endpoint。
- 构建后使用真实访问地址完成端到端验证。

继续阅读：

1. [多页面前端开发](/development/frontend-development/multi-page-applications/)
2. [项目结构与平台接入](/development/frontend-development/project-and-integration/)
3. [完整构建与发布链路](/development/frontend-development/build-and-publish/)
