如何通过命令提示符同时使用npm run watch与php artisan serve?
同时运行
npm run watch 和 php artisan serve 的几种实用方法 嘿,这个问题我之前也碰到过!因为npm run watch是个持续运行的进程,会占着你的终端会话,导致没法再输入其他命令。下面给你几种靠谱的解决办法,能让你用一条命令同时启动这两个服务:
1. 用 concurrently 包(跨平台首选)
这是最推荐的方式,不管你用Windows、macOS还是Linux都能用,还能清晰区分两个进程的输出日志。
- 首先安装这个包到开发依赖:
npm install concurrently --save-dev - 打开项目根目录的
package.json,在scripts里新增一个自定义命令,比如叫dev:"scripts": { "watch": "npm run watch", // 保留你原来的watch命令 "serve": "php artisan serve", "dev": "concurrently \"npm run watch\" \"php artisan serve\"" } - 之后只要在终端输入这条命令,就能同时启动两个进程了:
如果你想区分两个进程的输出颜色,还可以加个颜色参数,比如让watch输出蓝色,serve输出绿色:npm run dev"dev": "concurrently -c \"blue,green\" \"npm run watch\" \"php artisan serve\""
2. 用终端后台运行(适合Linux/macOS或WSL)
如果你不想装额外的包,Linux和macOS的终端支持直接把进程放到后台运行:
- 直接在终端输入:
这里的npm run watch & php artisan serve&符号会把npm run watch放到后台执行,当前终端就可以正常运行php artisan serve了。如果之后想把后台的watch进程拉回前台,输入fg就行;要关闭它的话,可以用kill %1(%1是后台进程的编号,你可以用jobs命令查看)。
3. Windows CMD/PowerShell 专属方法
如果用的是Windows的原生CMD或者PowerShell,可以用start命令新开一个窗口运行watch:
- 输入这条命令:
它会弹出一个新窗口运行start npm run watch && php artisan servenpm run watch,当前窗口则运行php artisan serve,两边的日志互不干扰。
小提示
如果你用的是新版Laravel,其实npm run dev本身就会启动Vite的开发服务器,不过如果你的场景确实需要同时跑php artisan serve,上面的方法都能完美解决你的问题。
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

