Laravel Mix HMR 服务器未启动

Laravel Mix HMR Server Does Not Launch

描述:

这是 LARAVEL 和我的其他项目的全新安装

运行ning npm run hot 将脚本标记源从 http://localhost/*/*.* 更改为 http://localhost:8080/*/*.* 但是我总是从 localhost:8080 得到 net::ERR_EMPTY_RESPONSE。 HMR 服务器根本不启动。该命令的终端输出也没有提及启动新的 Web 服务器。

PS C:\Users\Eric Wang\Documents\GitHub\test-laravel-mix> npm run hot

● Mix █████████████████████████ emitting (95%)
 emit

● Mix █████████████████████████ done (99%) plugins
 WebpackBar:done



✔ Mix
  Compiled successfully in 5.51s


   Laravel Mix v6.0.43   


✔ Compiled Successfully in 5336ms
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────┐├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────┤│                                                                                                        css/app.css │ 47.6 KiB │└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────┘webpack compiled successfully

这是浏览器无法获取捆绑文件的图片

重现步骤:

我 运行 Docker 4.5.1 使用旧版 Hyper-V。 我容器化了 Laravel 和 PHP 但不是前端和 JS。我是 运行 Laravel 在我的主系统上混音

  1. https://github.com/ericwang401/test-laravel-mix
  2. 克隆 Laravel 的全新安装
  3. 使用 git clone https://github.com/laradock/laradock.git
  4. 在项目文件夹中克隆 Laradock
  5. CD 到 Laradock 文件夹并用 cp .env.example .env
  6. 制作 .env 文件
  7. 在 .env 文件中将 PHP_VERSION 设置为 PHP_VERSION=8.0 并且不要编辑 MYSQL 设置
  8. 现在编辑 Laravel 环境文件
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
  1. 使用 docker-compose up -d nginx mysql
  2. 在 Laradock 文件夹中启动 Laravel 应用程序
  3. 在Docker容器中进入bash模式docker-compose exec workspace bash
  4. 安装 Composer 依赖项但尚未安装 NPM 依赖项composer i
  5. 现在退出 Docker 容器 CNTRL + D
  6. 在您的主系统上的项目根目录中安装 NPM 依赖项npm i
  7. 运行 在你的主系统上 npm run hot
  8. 现在转到 http://localhost 应该是白屏
  9. 检查控制台日志,它应该在尝试获取捆绑文件时给出 net::ERR_EMPTY_RESPONSE

记住:后端在 运行 里面 Docker 前端(Laravel Mix)在主机系统运行

这个问题发生在 Laravel 9 + Jetstream 的新项目安装上,它也发生在我的其他旧项目上,例如 https://github.com/StratumPanel/Stratum-Panel

HMR 服务器根本没有启动。

我发现了问题。问题是无法绑定到默认端口 8080,Laravel Mix HMR 正在使用。 Webpack Dev Server 不响应无法绑定到端口的消息。为了确认这个问题,我在朋友的PC上复制了环境,也是无法绑定8080端口,但这次报错是dev server无法绑定8080端口

我通过指定

解决了这个问题
mix.options({
        hmrOptions: {
            host: 'localhost',
            port: 4206
        }
    });

而且有效!在我朋友的电脑和我的电脑上。

我在我朋友的电脑上使用了完全相同的复制指令。

我花了太长时间调查这个问题