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

Laravel 8 + Vue环境下npm run watch编译成功但无法加载页面

问题根因
  1. 对npm run watch的功能定位理解错误
    npm run watch仅负责监听前端资源文件变动,自动编译产物到项目public目录,本身不会启动独立的Web服务。用户大概率是误将编译完成后的访问地址当成了webpack的默认端口,而非php artisan serve启动的http://127.0.0.1:8000。
  2. webpack-dev-server版本兼容问题
    你当前使用的laravel-mix@6.x默认适配webpack-dev-server@3.x版本,依赖里的webpack-dev-server@4.x存在API不兼容问题,如果启动了热更新(hot模式)会导致热更新服务启动失败,触发连接拒绝报错。
  3. 端口占用或配置错误
    热更新服务默认使用的8080端口被其他程序占用,或者webpack.mix.js中配置了错误的服务地址/端口,也会导致连接失败。
排查解决步骤
  • 确认访问地址正确
    运行npm run watch后无需切换访问地址,直接刷新http://127.0.0.1:8000即可查看更新后的页面,不需要访问其他端口。
  • 修复热更新版本兼容问题
    如果需要使用无刷新热更新功能,先降级webpack-dev-server到适配版本:
npm uninstall webpack-dev-server
npm install webpack-dev-server@3.11.3 --save-dev

之后执行npm run hot,再访问http://127.0.0.1:8000即可实现热更新。

  • 检查webpack.mix.js配置
    确保配置文件没有错误的服务相关配置,最简可用配置参考:
const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .vue()
   .sass('resources/sass/app.scss', 'public/css');

如果需要自定义热更新端口,添加如下配置即可:

mix.options({
  hmrOptions: {
    host: '127.0.0.1',
    port: 8081 // 替换为空闲端口
  }
})
  • 排查端口占用
    Windows系统执行netstat -ano | findstr "8080",Mac/Linux系统执行lsof -i:8080检查端口占用,杀掉对应进程或者更换热更新端口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:09:00