Network: unavailable 是 vue-cli 的 default-gateway 模块调用已被新版 Windows 移除的 wmic 命令失败,导致 prepareURLs.js 里 lanUrlForTerminal 保留了默认字面量 chalk.gray('unavailable'),再被 HBuilderX 原样转发到控制台。
修复:public 显式指定局域网访问地址,修复新版 Windows(无 wmic)下 default-gateway 探测失败、控制台显示 Network: unavailable 的问题;getLocalIPv4() 自动取本机私有网段 IP,换网络无需手改。
const os = require('os');
// 获取本机局域网 IPv4(优先 192.168.x / 10.x / 172.16-31.x,排除 169.254.x 链路本地地址)
function getLocalIPv4 () {
const nets = os.networkInterfaces()
const list = []
Object.keys(nets).forEach(name => {
(nets[name] || []).forEach(net => {
if (net.family === 'IPv4' && !net.internal) list.push(net.address)
})
})
const isPrivate = ip => /^10[.]|^172.[.]|^192[.]168[.]/.test(ip)
return list.find(isPrivate) || ''
}
const localIP = getLocalIPv4()
const devPort = 9001
devServer: {
proxy: proxyOption,
port: devPort, // 你的端口号
// 修复新版 Windows(无 wmic)下 default-gateway 探测失败导致控制台显示 Network: unavailable
// 显式指定局域网地址后,控制台会显示 http://<本机IP>:9001/
public: localIP ? ${localIP}:${devPort} : undefined,
},
0 个评论
要回复文章请先登录或注册