如何用单条命令启动多目录下的Node.js项目服务及热重载?
如何用单条命令启动多个Node.js项目服务器?
当然可以,这里提供两种实用方案,适配不同场景:
方案一:使用concurrently npm包(Node生态首选)
这是最便捷的方式,专门用于并行执行多个命令,还能自动区分不同进程的日志:
- 在主文件夹下初始化npm(未初始化的话):
npm init -y - 安装依赖:
npm install concurrently --save-dev - 编辑主文件夹的
package.json,在scripts字段添加启动命令:"scripts": { "start:all": "concurrently \"cd 'Project 1' && npm start\" \"cd 'Project 2' && npm start\" \"cd 'Project 3' && npm start\" \"cd 'Project 4' && npm start\"" } - 执行单条命令启动所有服务器:
每个项目的nodemon热重载会正常工作,控制台会用不同颜色标记每个项目的日志输出。npm run start:all
方案二:使用Shell脚本(原生无依赖)
如果你偏好无额外依赖的方式,可以写个脚本批量启动:
Mac/Linux 版本
在主文件夹创建start-all.sh文件,内容如下:
#!/bin/bash # 后台启动每个项目的服务器 cd "Project 1" && npm start & cd "../Project 2" && npm start & cd "../Project 3" && npm start & cd "../Project 4" && npm start & # 等待所有进程启动 wait
给脚本添加执行权限:
chmod +x start-all.sh
启动命令:
./start-all.sh
Windows 版本
在主文件夹创建start-all.bat文件,内容如下:
start cmd /k "cd Project 1 && npm start" start cmd /k "cd Project 2 && npm start" start cmd /k "cd Project 3 && npm start" start cmd /k "cd Project 4 && npm start"
直接双击该bat文件,或在命令行中运行它,会自动打开4个独立的命令窗口分别运行各项目服务器。
注意事项
- 确保每个子项目的
package.json中start命令已配置好对应端口(比如通过PORT=3001 nodemon app.js或代码内指定) concurrently方案会将所有日志集中输出在同一个控制台,适合快速查看;脚本方案会拆分到独立窗口,日志更清晰,可根据需求选择。
内容的提问来源于stack exchange,提问作者user21887695
相关产品推荐
相关产品推荐

