English
vite-plugin-shopify-theme

故障排查

先用 doctor 读取插件状态,再从 Theme Target、开发分支检查、目标锁、Mixer、Git、生产检查和网络边界定位 Theme Run 的开发或交付失败。

先运行 doctor --path <theme> 读取插件拥有的状态。需要机器处理时使用 --json,并按 target.structure、mixer.index、layout.render、lock.active 等稳定诊断码分支;不要依赖终端文案做字符串匹配。诊断不会获取或修复目标锁,也不会修改 Git 或连接商店。

Theme Target 无法解析

确认命令从 Vite 项目根目录运行,--path 指向真实的 Theme 根目录,且该目录包含 layout/ 和 snippets/。直接运行 Vite 时,需要在插件选项中提供 themePath;不要假定 Theme Run 的私有上下文会出现在独立 Vite 进程中。两者同时存在时,themePath 必须与 --path 指向同一目标。

开发分支检查失败

在默认的 devBranches: ["dev"] 下,只有 Theme Target 当前分支名以 dev 开头时,dev 才能启动。处于 detached HEAD 或目录没有 Git 仓库时,该检查同样失败。可以切换分支、调整 devBranches,或设为 false。

提示目标正在使用

同一真实 Theme Target 的操作互斥,不同目标才可以并行。先确认记录的进程是否仍在运行。插件能恢复已经消失的持锁进程;若恢复保护本身被强制终止,系统会失败关闭并报告需要人工处理的位置,此时按实际诊断信息处理,不要删除其他目标的锁。

列出已有 shopify theme dev 或 shopify app dev 进程的告警来自 maxDevProcesses。它不会阻止启动,但多个 dev 进程共享同一账号的 API 配额,可能拖慢预览。

Mixer 阻止开发

检查 Mixer 是否已跟踪、Git index 是否保存当前的生产形态,以及版本标记是否匹配已安装的插件。重新运行生产构建、审查差异并暂存生成文件;不要跳过检查或手工复制开发地址。

生产检查失败

build、push 和 package 的验证门会检查 Mixer 是否为生产形态、layout/theme.liquid 是否渲染它,以及标准 Theme 目录中是否残留 /@vite/client 引用。它还会拒绝 assets/*.js 中未解析的构建期别名导入(如 #theme/),以及对 cdn.jsdelivr.net、unpkg.com、cdnjs.cloudflare.com 的引用。修正实际构建或布局问题后重新执行完整命令,不要绕开推送或打包前的验证门。

手机能打开预览但资源失败

分别检查 Shopify 预览和 Vite 来源是否从手机可达,再检查 HTTPS 页面是否加载了局域网 HTTP 资源。按手机与局域网调试重新核对来源选择和网络边界。

内容维护: ShopZend

资料核对:2026-09-23

内容更新:2026-10-05