shopify app function run 传 JSON 报错
现象#
把线上日志里的 input 存成 input.json,执行 shopify app function run -i input.json 报 JSON 解析失败;改成手写一段简化 JSON 却能跑通。
原因#
- 日志里的 input 外层还包着 payload,直接喂给 CLI 多了一层结构
- 从 Dev Dashboard 复制的内容被截断或带省略号,JSON 本身已不完整
- Windows 下用 echo 拼管道会带上 CRLF 与 BOM,解析器读到不可见字符
- 忘记加
-e run时 CLI 调用错导出函数,报的是另一类错误
处理步骤#
- 只取日志中
input对象本体,另存为 UTF-8 无 BOM 的 input.json - 执行
shopify app function run -i input.json -j -e run - 把结果重定向到 out.json,检查 operations 是否符合预期结构
- 构造边界数据时复制真实 input 只改数量与属性,保持字段名不变
- CI 里固定用
-i传文件,不要依赖标准输入管道
验收标准#
命令退出码为 0,out.json 中的 operations 与线上日志的 output 一致;同一 fixture 在 CI 可重复跑出相同结果。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。