[错误]: 在 npm 注册表不可访问时,`shopify hydrogen dev` 在监听之前退出 (最新版本分块中的 p-cancelable onCancel-after-settle)
作者: paul-phan创建于 2026年9月15日更新于 2026年9月15日
请确认您有:
- 搜索现有问题以查看您的问题是否重复 。
- 在最新的CLI版本中再出这个问题.
在哪个地区你遇到麻烦了?
氢自定义存储前端
预期行为
`制造氢-dev'启动dev服务器。 启动“ 有更新版本吗?” 检查是 礼貌; 如果 npm 注册无法访问, 它应该降解为调试日志, 服务器应该 还没上来呢
实际行为
当npm登记无法到达时,在dev服务器之前 " 处理氢去除 " exits 1 听着。 不 QQ 本地:` 已打印行 。 过程会随着p-cancelable的内相变化而死:
> 购买氢- dev --codegen -- port "$PORT"
`envFile ' 选项已贬值,请取而代之的是`envDir:假'。
[vite] (sr) 重新优化依赖,因为 vite 配置已经改变
[邀请] (客户) 重新优化依赖性,因为 Vite 配置已经改变
错误: " 终止 " 处理器在承诺达成后附后。
at o (node modules/@shopify/cli/dist/latest-version-LDWU5F7A.js:11:17603) (中文(简体) ).
at d (node modules/@shopify/cli/dist/latest-version-LDWU5F7A.js:19:47843) (中文(简体) ).
at t.<anonymous> (node modules/@shopify/cli/dist/latest-version-LDWU5F7A.js:19:49069) 互联网档案馆的存檔,存档日期2014-12-29.
at t. wrapper (节点: events: 639: 12)
at t.emit(节点:活动:514:20)
at t.emit (节点: 域: 473: 12)
节点/@shopify/cli/dist/latest-version-LDWU5F7A.js:19:37968
在 runNextTicks (节点: 内部/ 进程/ 任务 队列: 65: 5)
时间( 节点: 内部/ 计时器: 615: 9)这是一个艰难的启动失败,而不是退化的通知.
- 复制步骤
- 脚手架或使用任何氢储存头; " npm ci " 有网络的 " node modules " 完成。
- 取消npm登记可达性。 任何复制的:防火墙 " DROP " 、防火墙
reject'/enrefused'或拒绝DNS。 npm run dev'(即制造氢-dev')。
1号出口,上面有痕迹 转载于26.8.2 / npm 11.19.1, Debian trixie (`node:26-slim')上, linux/arm64和linux/amd64 (英语).
分析
从4.7.1的发货包中:
最新版本-*.js'是从一个地方动态导入的——Get LatestNPMPackage Version'
在“dist/chunk-GW4JHUIA.js”中:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? aync 函数 ne( e) { // 获得LatestNPMPackageVersion 返回 d(s) 获取国家防范机制软件包的最新版本:${c.raw(e)}, y ("cmd all timing network ms") (sync () {{{{} cons {默认:n } = 等待导入(.)/最后版本-LDWU5F7A.js"); 返回n(e);
- ; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
其唯一的呼叫者是 " Check For NewVersionOnCLI " ,它已经以防御方式包住了:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
async 函数 Pe( e, n, {快取Expiry InHours: a = 0 } = {}) { // 检查新VersionOnCLI
const t = async () => (d(检查是否有${e}的版本比${n}`,ne(e))更新);
让p;
尝试 { p = 等待 O (`npm- package - $ {e}`, t, a * 3600 * 1000;} 捕获{ 返回;}
如果 (p + 新的 SemVer (n).compare (p) < 0)
. . . . . . .内容来源: Shopify/cli