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 或超出体积,构建通过但运行时加载失败
处理步骤#
- 在 Hydrogen 后台打开对应 deployment,看 Logs 里的 worker 堆栈与出错路径
- 本地跑生产产物复现:
npm run build && npx vite preview - 检查变量是否齐全,在 loader 里临时打印
Object.keys(env),不要打印值 - 给根路由加
ErrorBoundary,把error.message渲染到页面上便于定位 - 全局搜
process.env与fs,改为从context.env读取
验收标准#
后台 Logs 能定位到具体堆栈与文件,修复后线上首页返回 200,ErrorBoundary 不再被触发。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。