Files

2.0 KiB
Raw Permalink Blame History

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

解决方案:

  1. 检查 CSV 文件格式是否正确
  2. 确认字段分隔符为逗号
  3. 检查是否有未闭合的引号
  4. 验证编码是否为 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)