Files
what-to-eat/docs/dev/cli.md
T

121 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Cook CLI
Cook CLI 是一个命令行工具,用于管理菜谱数据。
## 安装
项目依赖已在 workspace 中配置,无需单独安装。
## 数据源
菜谱数据保存在本地 `packages/data/recipe.csv`,直接用编辑器或 Excel 维护,提交 PR 即可。
## 命令
### convert
将本地 CSV 数据转换为 JSON 格式。
```bash
pnpm convert
```
**功能:**
- 读取 `packages/data/recipe.csv`
- 转换为 JSON 格式
- 生成 `packages/data/recipe.json`
**使用场景:**
- 手动编辑 CSV 后需要重新生成 JSON
- 确保 CSV 和 JSON 数据同步
## 工作流程
### 更新菜谱数据
```bash
# 1. 编辑 packages/data/recipe.csv
# 2. 转换为 JSON
pnpm convert
# 3. 启动开发服务器查看效果
pnpm dev
```
## 数据格式
### CSV 格式
```csv
name,stuff,bv,difficulty,tags,methods,tools,id
宫保鸡丁,鸡肉、花生米,BV1234567890,简单,川菜、家常菜,炒、煎,一口大锅,0
```
### JSON 格式
```json
[
{
"name": "宫保鸡丁",
"stuff": ["鸡肉", "花生米"],
"bv": "BV1234567890",
"difficulty": "简单",
"tags": ["川菜", "家常菜"],
"methods": ["炒", "煎"],
"tools": ["一口大锅"],
"id": 0
}
]
```
## 故障排查
### CSV 解析错误
**错误信息:**
```
Error: Failed to parse CSV
```
**解决方案:**
1. 检查 CSV 文件格式是否正确
2. 确认字段分隔符为逗号
3. 检查是否有未闭合的引号
4. 验证编码是否为 UTF-8
## 相关文档
- [开发指南](/dev/app)
- [使用说明](/guide/getting-started)
## 测试
### 运行测试
```bash
# 运行所有测试
pnpm test
# 运行 CLI 相关测试
pnpm test packages/cook
# 运行特定测试文件
pnpm test packages/cook/src/utils/csv.test.ts
```
### 测试覆盖
CLI 工具包含以下测试:
- **CSV 解析测试** (`csv.test.ts`)
- ✅ BV 号清洗和 URL 处理
- ✅ CSV 格式解析
- ✅ 空值和边界情况处理
- ✅ 数组字段过滤空值
- ✅ CSV 往返一致性(parse → stringify → parse)