You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Webpack 5.x后执行npm run serve出现getaddrinfo ENOTFOUND错误

问题原因及解决方案

错误原因

你把带端口号的localhost:8081赋值给了host配置项,但Webpack Dev Server的host字段只接受纯主机名/IP地址,不能包含端口号。当Dev Server尝试解析localhost:8081作为主机名时,DNS无法找到对应的地址,因此抛出getaddrinfo ENOTFOUND错误。

Webpack 4中的public配置用于指定外部可访问的完整地址(主机+端口),而Webpack 5里的host仅负责设置服务器绑定的主机名,端口需要通过单独的port字段配置,两者不能混在一起。

修复方案

有两种简单的修复方式:

方式一:修改环境变量

直接修改.env.development文件,去掉端口号:

PUBLIC_ADDRESS=localhost

此时vue.config.js中的配置保持不变即可:

devServer: {
  port: 8081,
  host: process.env.PUBLIC_ADDRESS,
},

方式二:拆分变量(保留原环境变量格式)

如果不想修改环境变量,可以在代码中拆分字符串,提取主机名部分:

devServer: {
  port: 8081,
  host: process.env.PUBLIC_ADDRESS.split(':')[0],
},

这种方式会自动把localhost:8081拆分成localhost作为主机名,端口仍使用配置里的8081。

内容的提问来源于stack exchange,提问作者Dave Mackey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:03:26