使用Laravel Herd运行站点:是否需每次执行npm run dev?终端关闭失效求替代方案
Laravel Herd 前端依赖问题解答
服务来源说明
你遇到的情况是因为Laravel默认使用Vite作为前端构建工具:
- Laravel Herd 负责运行后端PHP服务:处理路由、数据库交互、控制器逻辑等后端工作,只要Herd处于运行状态,后端接口和页面框架就能正常响应。
npm run dev启动的是Vite开发服务器:负责实时编译前端资源(CSS、JS、Vue/React组件等),同时提供热重载功能。开发阶段Laravel的模板会指向Vite dev server的资源地址,所以关闭终端后Vite服务停止,页面无法找到前端资源,就会加载失败。
无需依赖终端运行站点的方法
方法1:编译前端资源到静态文件
执行以下命令:
npm run build
该命令会将所有前端资源编译打包到项目的public/build目录下,之后Laravel会自动从这个静态目录加载资源,不再依赖Vite开发服务器。此时只要Herd正常运行,就能直接访问站点,无需一直保持终端开启。
注意:这种方式没有热重载功能,修改前端代码后需要重新执行
npm run build才能看到更新效果。
方法2:后台运行Vite开发服务器(可选)
如果需要保留开发时的热重载功能,但不想一直开着终端,可以将npm run dev放到后台运行:
- macOS/Linux环境下可使用:
nohup npm run dev &
- 也可以用
pm2这类进程管理器托管Vite进程,但需要额外安装工具,适合有一定基础后尝试。
内容的提问来源于stack exchange,提问作者Md Lutfur Rahman
相关产品推荐
相关产品推荐

