Shopify CLI 与 Headless

Oxygen 线上 500 但本地一切正常怎么查日志

现象#

npm run dev 全部正常,部署到 Oxygen 后首页返回 500,页面只有 Internal Server Error;deploy 终端没有堆栈,后台也看不出问题在哪。

原因#

  • Worker 运行时没有 Node 的 fs 与 process.cwd(),本地能跑的代码到边缘直接抛错
  • 生产环境变量缺失,env.PUBLIC_STORE_DOMAIN 为 undefined,客户端初始化即失败
  • 根路由 loader 抛错却没有导出 ErrorBoundary,整页被替换成通用 500
  • 依赖打进 worker 后含动态 require 或超出体积,构建通过但运行时加载失败

处理步骤#

  1. 在 Hydrogen 后台打开对应 deployment,看 Logs 里的 worker 堆栈与出错路径
  2. 本地跑生产产物复现:npm run build && npx vite preview
  3. 检查变量是否齐全,在 loader 里临时打印 Object.keys(env),不要打印值
  4. 给根路由加 ErrorBoundary,把 error.message 渲染到页面上便于定位
  5. 全局搜 process.env 与 fs,改为从 context.env 读取

验收标准#

后台 Logs 能定位到具体堆栈与文件,修复后线上首页返回 200,ErrorBoundary 不再被触发。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。