# 开发环境设置指南

## 系统要求

### 必需软件

| 软件 | 最低版本 | 推荐版本 |
|------|----------|----------|
| Node.js | 20.x | 20.19.2 |
| pnpm | 8.x | 10.18.3 |
| PostgreSQL | 15+ | 17 |
| Redis | 6+ | 7 |
| Git | 2.x | 最新 |

### 推荐工具

- **IDE**: VS Code
- **VS Code插件**:
  - ES Lint
  - Prettier
  - TypeScript Vue Plugin (Volar)
  - Vitest

## 安装步骤

### 1. 克隆项目

```bash
git clone <repository-url>
cd 188-179-template-6
```

### 2. 安装 pnpm (如果未安装)

```bash
npm install -g pnpm@10.18.3
```

### 3. 安装项目依赖

```bash
pnpm install
```

这将安装所有工作空间的依赖，包括：
- 核心共享包
- 业务模块包
- UI组件包
- 小程序UI包
- 应用包

## 环境配置

### PostgreSQL 配置

#### 使用 Docker 运行 PostgreSQL

```bash
docker run -d \
  --name postgres-17 \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=postgres \
  -p 5432:5432 \
  postgres:17
```

#### 本地安装 PostgreSQL

1. 安装 PostgreSQL 17
2. 创建数据库用户和数据库
3. 配置连接参数

### Redis 配置

#### 使用 Docker 运行 Redis

```bash
docker run -d \
  --name redis-7 \
  -p 6379:6379 \
  redis:7
```

### 环境变量配置

创建 `.env` 文件（参考 `.env.example`）：

```bash
# 数据库配置
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres

# Redis配置
REDIS_URL=redis://localhost:6379

# JWT配置
JWT_SECRET=your-jwt-secret-key-change-in-production

# MinIO配置
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=d8dai

# 应用配置
NODE_ENV=development
PORT=3000
```

## 构建共享包

在启动应用前，需要先构建共享的UI包：

```bash
# 构建所有小程序UI包
pnpm run build:mini-ui-packages

# 或者分批构建
pnpm run build:mini-ui-packages:common    # 通用组件
pnpm run build:mini-ui-packages:yongren   # 员工端组件
pnpm run build:mini-ui-packages:rencai    # 人才端组件
```

## 验证安装

### 运行类型检查

```bash
# 检查所有包的类型
pnpm typecheck

# 检查特定包
cd packages/core-module && pnpm typecheck
```

### 运行测试

```bash
# 运行所有测试
pnpm test

# 运行特定测试
cd packages/core-module/auth-module && pnpm test
```

## 启动开发环境

### 启动所有应用

```bash
pnpm dev
```

这将启动：
- 管理后台 (端口 8080)
- 员工小程序 H5
- 人才小程序 H5

### 单独启动应用

```bash
# 管理后台
pnpm run dev:web

# 员工小程序 H5
pnpm run dev:mini

# 人才小程序 H5
pnpm run dev:mini-talent
```

## 开发工具配置

### VS Code 设置

创建 `.vscode/settings.json`：

```json
{
  "typescript.tsdk": "node_modules/typescript/lib",
  "typescript.enablePromptUseWorkspaceTsdk": true,
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }
}
```

### Git Hooks (可选)

安装 husky 进行代码检查：

```bash
pnpm add -D husky lint-staged
npx husky install
```

## 故障排查

### 依赖安装失败

```bash
# 清理缓存重新安装
rm -rf node_modules .pnpm-store
pnpm install
```

### 类型检查错误

```bash
# 清理构建产物
pnpm -r run clean

# 重新构建
pnpm build
```

### 数据库连接失败

检查：
1. PostgreSQL 是否运行
2. 连接参数是否正确
3. 防火墙设置

### 端口冲突

修改 `.env` 文件中的端口配置：

```bash
PORT=3001  # 更改为其他端口
```

## 下一步

环境配置完成后，请参阅：
- [本地开发指南](./local-development.md)
- [编码标准](../standards/coding-standards.md)

---

**文档版本**: 1.0
**最后更新**: 2026-01-07
