PAYATHON 2026

wp-env 无法获取 WordPress 版本时如何排查?

数据阿明

结论

这条错误表示 wp-env 读取配置时,既没能从本地缓存找到当前 WordPress 版本,也没能从网络获取版本信息。报错出现在 getLatestWordPressVersion 和 parseCoreSource 阶段,因此应先检查运行 wp-env 的 Windows 主机能否通过 Node.js 访问 WordPress 版本服务。

.wp-env 中的 mappings 配置不负责解析 WordPress 版本。Docker 内能 ping 通某个地址,也无法证明 Windows 上运行的 Node.js 能建立 HTTPS 连接。

检查主机上的 HTTPS 连接

在运行 wp-env 的同一个 PowerShell 窗口中,分别测试 HTTPS 请求和 Node.js 网络请求:

Invoke-WebRequest https://api.wordpress.org/core/version-check/1.7/
node -e 'fetch("https://api.wordpress.org/core/version-check/1.7/").then(r => console.log(r.status)).catch(e => { console.error(e); process.exit(1); })'

如果两个请求都失败,先检查主机网络、DNS、代理、防火墙或安全软件是否拦截了对该地址的 HTTPS 访问。ping 只检查 ICMP 连通性,不能代替 HTTPS 请求测试。

如果 PowerShell 请求成功而 Node.js 请求失败,重点检查 Node.js 进程使用的代理和证书环境。可以查看当前终端中的代理变量和 npm 代理配置:

Get-ChildItem Env:HTTP_PROXY,Env:HTTPS_PROXY,Env:NO_PROXY -ErrorAction SilentlyContinue
npm config get proxy
npm config get https-proxy

根据实际网络环境调整代理或证书配置,然后在同一个终端重新运行 wp-env。

对比能正常运行的笔记本

相同配置在笔记本上可用,可以比较两台机器的代理设置、DNS 解析、安全软件规则,以及 Node.js 进程所处的网络环境。持续的网络访问失败无法靠清理缓存解决。网络恢复后再重试,wp-env 才能获取所需的 WordPress 版本信息。

备注:内容仅供参考。