【工程化】通过shell同时启动多个项目
近期做了一个h5页面拼装demo项目,里面包含了前台、后台、简易服务端三个子项目。其中后台用iframe嵌套了前台h5页面做预览用,前后台又依赖服务端,每次启动都要依次运行三个服务。那么能否一次开启这三个服务呢?
需求分析
- 需要在根目录中执行子目录的npm命令开启服务
- 我们希望开启三个cmd窗口来监听,而非在一个窗口内,不然开发时调试信息就无法查看。
- npm脚本是支持使用&&串联多个命令的。但是我们的目的是并行,而非依次执行。
- 开发时启动监听服务,服务不会结束,不会走到下一个服务。
前两点可以通过使用shell脚本来解决。
shell脚本
npm脚本中可以直接运行shell脚本。在项目根目录新建三个shell脚本,分别对应三个子项目。内容如下:
1 | startPC.sh |
1 | startH5.sh |
1 | startServer.sh |
再在package.json编辑命令如下:
1 | { |
实际运行发现,可以依次启动窗口,但是由于上一个窗口在监听,要手动结束服务,下一个窗口才会启动。
并行
通过安装concurrently包,可以实现并行效果。将package.json改为如下:
1 | { |
成功同时打开三个窗口执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ahao430 的博客!
评论