75 lines
2.5 KiB
Markdown
75 lines
2.5 KiB
Markdown
|
|
# Expo App + Express.js
|
|||
|
|
|
|||
|
|
## 目录结构规范(严格遵循)
|
|||
|
|
|
|||
|
|
当前仓库是一个 monorepo(基于 pnpm 的 workspace)
|
|||
|
|
|
|||
|
|
- Expo 代码在 client 目录,Express.js 代码在 server 目录
|
|||
|
|
- 本模板默认无 Tab Bar,可按需改造
|
|||
|
|
|
|||
|
|
目录结构说明
|
|||
|
|
|
|||
|
|
├── server/ # 服务端代码根目录 (Express.js)
|
|||
|
|
| ├── src/
|
|||
|
|
│ │ └── index.ts # Express 入口文件
|
|||
|
|
| └── package.json # 服务端 package.json
|
|||
|
|
├── client/ # React Native 前端代码
|
|||
|
|
│ ├── app/ # Expo Router 路由目录(仅路由配置)
|
|||
|
|
│ │ ├── _layout.tsx # 根布局文件(必需,务必阅读)
|
|||
|
|
│ │ ├── home.tsx # 首页
|
|||
|
|
│ │ └── index.tsx # re-export home.tsx
|
|||
|
|
│ ├── screens/ # 页面实现目录(与 app/ 路由对应)
|
|||
|
|
│ │ └── demo/ # demo 示例页面
|
|||
|
|
│ │ ├── index.tsx # 页面组件实现
|
|||
|
|
│ │ └── styles.ts # 页面样式
|
|||
|
|
│ ├── components/ # 可复用组件
|
|||
|
|
│ │ └── Screen.tsx # 页面容器组件(必用)
|
|||
|
|
│ ├── hooks/ # 自定义 Hooks
|
|||
|
|
│ ├── contexts/ # React Context 代码
|
|||
|
|
│ ├── constants/ # 常量定义(如主题配置)
|
|||
|
|
│ ├── utils/ # 工具函数
|
|||
|
|
│ ├── assets/ # 静态资源
|
|||
|
|
| └── package.json # Expo 应用 package.json
|
|||
|
|
├── package.json
|
|||
|
|
├── .cozeproj # 预置脚手架脚本(禁止修改)
|
|||
|
|
└── .coze # 配置文件(禁止修改)
|
|||
|
|
|
|||
|
|
## 安装依赖
|
|||
|
|
|
|||
|
|
### 命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
pnpm i
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 新增依赖约束
|
|||
|
|
|
|||
|
|
如果需要新增依赖,需在 client 和 server 各自的目录添加(原因:隔离前后端的依赖),禁止在根目录直接安装依赖
|
|||
|
|
|
|||
|
|
### 新增依赖标准流程
|
|||
|
|
|
|||
|
|
- 编辑 `client/package.json` 或 `server/package.json`
|
|||
|
|
- 在根目录执行 `pnpm i`
|
|||
|
|
|
|||
|
|
## Expo 开发规范
|
|||
|
|
|
|||
|
|
### 路径别名
|
|||
|
|
|
|||
|
|
Expo 配置了 `@/` 路径别名指向 `client/` 目录:
|
|||
|
|
|
|||
|
|
```tsx
|
|||
|
|
// 正确
|
|||
|
|
import { Screen } from '@/components/Screen';
|
|||
|
|
|
|||
|
|
// 避免相对路径
|
|||
|
|
import { Screen } from '../../../components/Screen';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 本地开发
|
|||
|
|
|
|||
|
|
运行 coze dev 可以同时启动前端和后端服务,如果端口已占用,该命令会先杀掉占用端口的进程再启动,也可以用来重启前端和后端服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
coze dev
|
|||
|
|
```
|