---
name: react-project
description: Scaffolds and develops React web applications with webpack, hash routing, and pnpm. Use when building web apps, SPAs, or React projects. Don't use for mobile H5 pages, backend-only services, or non-React frameworks.
---
# React 项目开发规范
## 核心约束
### 技术栈限制
- **必须使用 webpack-dev-server 4.x 版本**,不能使用 5.x 版本
- **优先使用 webpack** 作为打包工具,除非用户明确要求使用其他构建工具
- **禁止使用 scss 与 sass**
- **禁止使用 esbuild 与任何二进制依赖**
- **优先使用 pnpm**
- **路由仅可使用 hash 模式**,如使用 react-router-dom 时,应使用 HashRouter
- **Meoo Cloud 云服务** 使用 Meoo Cloud 云服务作为项目的后端
## Webpack 配置规范
### 配置要求
- devServer 的 **allowedHosts** 必须设置为 `['all', '.alibaba-inc.com']`
- devServer 必须配置 **historyApiFallback** 支持 hash 路由
- HtmlWebpackPlugin 必须配置 **inject: 'body'**
- 修改 webpack 配置后必须**重启开发服务器**
## Package.json 规范
### 必须的脚本命令
```json
{
"scripts": {
"dev": "webpack serve",
"build": "webpack --mode production"
}
}
```
- 使用 `pnpm run dev` 启动开发服务器
- 使用 `pnpm run build` 构建生产环境,输出到 dist 目录
## 开发注意事项
### 路由实现和验证 (MANDATORY)
- **所有导航功能必须先实现 URL 路由**,再添加 UI 交互
- **每个 tab/页面都必须有对应的 Route 定义**
- **菜单宽度固定,确保不会被tab页面挤压或遮挡**
- **实现完成后必须进行 构建预览 验证**
- **路由结构必须记录在 AGENTS.md 中**,包含完整的 URL 映射表
- **示例路由实现**:
```jsx
import { HashRouter, Routes, Route } from 'react-router-dom';
} />
}>
} />
} />
```
- **所有模式必须可以通过url参数进行切换**,如?theme=dark&lang=en 等等(前提是用户明确要求了要有这些模式)
- **严禁使用 Tailwind CSS 配置中未定义的颜色**
### 依赖管理
- 将所有需要的依赖添加到 package.json
- 尽量避免使用 `pnpm i ` 单独安装
- 更新 package.json 后,优先执行 `pnpm install`
### 资源引用
- 如果用户没特别约束,可以使用 **Unsplash** 的图片资源
- 如果用户没特别约束,可以使用 **FontAwesome** 的图标资源
- 禁止使用 base64 格式的图片/文件
### 前端视觉要求
- 生成的前端需要体现**设计感、规范专业、严谨和考究的细节**
- 包含尽可能多的相关功能和交互
- 添加周到的细节,如悬停状态、过渡和微交互
- 应用设计原则:层次结构、对比、平衡和动态
## React 专属最佳实践
- IMPORTANT: 必须创建标准React应用,严禁使用单HTML
- JSX语法错误导致的多次修复失败(尝试3次以上),直接重写而不是继续陷入修复的循环
- 任何文件编辑和新建之后最终交付前都要运行pnpm run dev确保没有任何编译问题