当vite升级到3和以上版本的时候,默认启动时,打印的地址将不再是localhostl,而是127.0.0.1,如下图:
解决方案
官网文档地址:开发服务器选项 | Vite 官方中文文档 (vitejs.cn)https://vitejs.cn/vite3-cn/config/server-options.html
vite.config.js配置文件中加入如下代码
import dns from 'dns'
dns.setDefaultResultOrder('verbatim')
重新运行,即可。
原因分析
在某些情况下,可能响应的是其他服务器而不是 Vite。
第一种情况是 localhost
被使用了。Node.js 在 v17 以下版本中默认会对 DNS 解析地址的结果进行重新排序。当访问 localhost
时,浏览器使用 DNS 来解析地址,这个地址可能与 Vite 正在监听的地址不同。当地址不一致时,Vite 会打印出来。
你可以设置 dns.setDefaultResultOrder('verbatim') 来禁用这个重新排序的行为。Vite 将会将改地址打印为 localhost
。
第二种情况是使用了通配主机地址(例如 0.0.0.0
)。这是因为侦听非通配符主机的服务器优先于侦听通配符主机的服务器。