Laravel Mix HMR 服务器未启动
Laravel Mix HMR Server Does Not Launch
- Laravel混合版本:6.0.43
- 节点版本(节点-v):16.13.1
- NPM 版本 (npm -v):8.1.2
- OS: Windows 10 21h2
描述:
这是 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 在我的主系统上混音
- 从 https://github.com/ericwang401/test-laravel-mix
克隆 Laravel 的全新安装
- 使用 git clone https://github.com/laradock/laradock.git
在项目文件夹中克隆 Laradock
- CD 到 Laradock 文件夹并用
cp .env.example .env
制作 .env
文件
- 在 .env 文件中将 PHP_VERSION 设置为 PHP_VERSION=8.0 并且不要编辑 MYSQL 设置
- 现在编辑 Laravel 环境文件
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
- 使用
docker-compose up -d nginx mysql
在 Laradock 文件夹中启动 Laravel 应用程序
- 在Docker容器中进入bash模式
docker-compose exec workspace bash
- 安装 Composer 依赖项但尚未安装 NPM 依赖项
composer i
- 现在退出 Docker 容器
CNTRL + D
- 在您的主系统上的项目根目录中安装 NPM 依赖项
npm i
- 运行 在你的主系统上
npm run hot
- 现在转到
http://localhost
应该是白屏
- 检查控制台日志,它应该在尝试获取捆绑文件时给出
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
}
});
而且有效!在我朋友的电脑和我的电脑上。
我在我朋友的电脑上使用了完全相同的复制指令。
我花了太长时间调查这个问题
- Laravel混合版本:6.0.43
- 节点版本(节点-v):16.13.1
- NPM 版本 (npm -v):8.1.2
- OS: Windows 10 21h2
描述:
这是 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 在我的主系统上混音
- 从 https://github.com/ericwang401/test-laravel-mix 克隆 Laravel 的全新安装
- 使用 git clone https://github.com/laradock/laradock.git 在项目文件夹中克隆 Laradock
- CD 到 Laradock 文件夹并用
cp .env.example .env
制作 - 在 .env 文件中将 PHP_VERSION 设置为 PHP_VERSION=8.0 并且不要编辑 MYSQL 设置
- 现在编辑 Laravel 环境文件
.env
文件
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
- 使用
docker-compose up -d nginx mysql
在 Laradock 文件夹中启动 Laravel 应用程序
- 在Docker容器中进入bash模式
docker-compose exec workspace bash
- 安装 Composer 依赖项但尚未安装 NPM 依赖项
composer i
- 现在退出 Docker 容器
CNTRL + D
- 在您的主系统上的项目根目录中安装 NPM 依赖项
npm i
- 运行 在你的主系统上
npm run hot
- 现在转到
http://localhost
应该是白屏 - 检查控制台日志,它应该在尝试获取捆绑文件时给出
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
}
});
而且有效!在我朋友的电脑和我的电脑上。
我在我朋友的电脑上使用了完全相同的复制指令。
我花了太长时间调查这个问题