执行npm run多脚本时gulp watch未运行的问题排查
问题解决:npm run watch 仅运行app.js,未执行gulp watch
你碰到的问题根源是node app.js属于阻塞式进程——Express的app.listen()会持续占用终端进程,导致后续的gulp watch完全没机会启动。下面给你两种可行的解决办法:
方法一:使用concurrently工具(推荐)
这是专门用来同时启动多个命令的工具,能清晰分隔两个进程的日志输出:
- 先安装依赖:
npm install concurrently --save-dev
- 修改package.json的scripts配置:
"scripts": { "start:app": "node app.js", "start:gulp": "gulp watch", "watch": "concurrently \"npm run start:app\" \"npm run start:gulp\"" }
现在执行npm run watch,两个进程会同时启动,各自的日志还会用不同颜色区分,方便后续排查问题。
方法二:不额外安装包(仅适用于Unix/Linux/macOS)
如果不想新增依赖,可以把node进程放到后台运行,同时重定向输出避免阻塞:
"scripts": { "watch": "node app.js & gulp watch" }
但这种方式有明显缺陷:app.js的运行日志会被后台进程吞掉,无法查看状态;而且Windows系统不支持&语法,所以更推荐第一种方法。
额外验证步骤
先单独执行gulp watch,确认它本身能正常运行,排除gulp配置错误或依赖缺失的问题。
内容的提问来源于stack exchange,提问作者Devb
相关产品推荐
相关产品推荐

