Appearance
*.localhost 本地域名与前端开发最小配置模板
归类:前端 / 本地开发 状态:✅ 已验证
一、结论先行
*.localhost 一般可以直接作为本机开发域名使用,不需要手动修改 /etc/hosts。
常见可用形式:
http://localhost:3000http://test-host.localhost:3210http://openclaw-control.localhost:3191
这不是某个框架的特性,而是现代浏览器和系统通常会把 *.localhost 解析到本机回环地址。
二、为什么以前经常要改 hosts
以前常见的本地域名是:
demo.testmyapp.localfoo.dev
这类域名默认不会自动指向本机,因此通常要手动改 /etc/hosts。
而 *.localhost 属于更适合本地开发的特殊保留域名,现代环境下通常不需要再额外做 hosts 映射。
三、要想正常访问,还需要满足什么条件
即使 *.localhost 能解析到本机,前端项目还是要满足下面几个条件:
- 本地开发服务真的在监听对应端口。
- 开发服务器允许这个 Host 访问,而不是只接受
localhost。 - 如果使用 HMR,WebSocket 或 SockJS 的公开地址也要和自定义域名一致。
如果这几项没配好,常见表现是:
- 页面打不开
Invalid Host header- 首屏能开,但热更新连接失败
四、Vue CLI 最小可用模板
适合 @vue/cli-service 老项目。
js
// vue.config.js
const devHost = process.env.DEV_HOST || 'my-app.localhost'
const devPort = Number(process.env.PORT || 3210)
module.exports = {
devServer: {
host: '127.0.0.1',
port: devPort,
public: `${devHost}:${devPort}`,
disableHostCheck: true,
open: false
}
}json
{
"scripts": {
"serve:localhost": "cross-env DEV_HOST=my-app.localhost PORT=3210 vue-cli-service serve"
}
}访问方式:
text
http://my-app.localhost:3210实测补充
在一个 Vue 2 + TypeScript 的真实项目 test-host 中,上述配置已验证可用:
- 启动命令:
npm start - 访问地址:
http://test-host.localhost:3210 - 返回结果:HTTP 200
如果老项目安装依赖时触发 peer dependency 冲突,可尝试:
bash
npm install --legacy-peer-deps五、Vite 最小可用模板
ts
// vite.config.ts
import { defineConfig } from 'vite'
const devHost = process.env.DEV_HOST || 'my-app.localhost'
const devPort = Number(process.env.PORT || 5173)
export default defineConfig({
server: {
host: '127.0.0.1',
port: devPort,
strictPort: true,
hmr: {
host: devHost,
port: devPort
}
}
})json
{
"scripts": {
"dev:localhost": "cross-env DEV_HOST=my-app.localhost PORT=5173 vite"
}
}六、webpack-dev-server 最小可用模板
适合没有 Vue CLI 包装的原生 webpack 项目。
js
// webpack.config.js
const devHost = process.env.DEV_HOST || 'my-app.localhost'
const devPort = Number(process.env.PORT || 8080)
module.exports = {
devServer: {
host: '127.0.0.1',
port: devPort,
allowedHosts: 'all',
client: {
webSocketURL: `ws://${devHost}:${devPort}/ws`
}
}
}七、什么时候仍然可能需要额外配置
下面这些场景里,*.localhost 之外还可能需要更多设置:
- 你的 dev server 默认启用了严格的 Host 校验
- 你使用 HTTPS 本地证书
- 你通过容器、远程开发机或反向代理访问本地服务
- 你所在的工具链版本较老,对自定义本地域名支持不完整
这时优先检查的通常不是 DNS,而是:
allowedHosts或disableHostCheck- HMR / WebSocket 的公开地址
- 绑定的监听地址和端口
八、推荐做法
如果只是本机多项目开发,优先使用 *.localhost 而不是手工维护 hosts:
- 成本更低
- 命名更清晰
- 便于隔离 Cookie、LocalStorage 和本地面板入口
推荐命名方式:
control-center.localhosthelp-center.localhosttest-host.localhostdemo-admin.localhost