2.0 KiB
2.0 KiB
Cook CLI
Cook CLI 是一个命令行工具,用于管理菜谱数据。
安装
项目依赖已在 workspace 中配置,无需单独安装。
数据源
菜谱数据保存在本地 packages/data/recipe.csv,直接用编辑器或 Excel 维护,提交 PR 即可。
命令
convert
将本地 CSV 数据转换为 JSON 格式。
pnpm convert
功能:
- 读取
packages/data/recipe.csv - 转换为 JSON 格式
- 生成
packages/data/recipe.json
使用场景:
- 手动编辑 CSV 后需要重新生成 JSON
- 确保 CSV 和 JSON 数据同步
工作流程
更新菜谱数据
# 1. 编辑 packages/data/recipe.csv
# 2. 转换为 JSON
pnpm convert
# 3. 启动开发服务器查看效果
pnpm dev
数据格式
CSV 格式
name,stuff,bv,difficulty,tags,methods,tools,id
宫保鸡丁,鸡肉、花生米,BV1234567890,简单,川菜、家常菜,炒、煎,一口大锅,0
JSON 格式
[
{
"name": "宫保鸡丁",
"stuff": ["鸡肉", "花生米"],
"bv": "BV1234567890",
"difficulty": "简单",
"tags": ["川菜", "家常菜"],
"methods": ["炒", "煎"],
"tools": ["一口大锅"],
"id": 0
}
]
故障排查
CSV 解析错误
错误信息:
Error: Failed to parse CSV
解决方案:
- 检查 CSV 文件格式是否正确
- 确认字段分隔符为逗号
- 检查是否有未闭合的引号
- 验证编码是否为 UTF-8
相关文档
测试
运行测试
# 运行所有测试
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)