如何通过 shell 脚本启动本地服务器并在浏览器中打开它

如何通过 shell 脚本启动本地服务器并在浏览器中打开它

我有一个在浏览器中运行的测试套件(使用 QUnit,尽管这并不重要)。测试套件需要在特定端口上运行本地服务器。运行测试目前涉及几个步骤:

  1. node test/server
  2. 切换到选择的浏览器
  3. 打开本地主机:3000

我希望有一个命令来启动服务器然后运行open localhost:3000。理想情况下,节点进程将保留在前台,以便可以使用 ^C 将其终止。我对子 shell 不太了解,所以我不确定这是否可行。

答案1

如果我理解正确的话,你想要:

  • 启动 node.js 服务
  • 启动浏览器
  • 在浏览器中访问该服务

首先在给定的延迟后启动浏览器。接下来,启动服务并让其在前台运行。双 & 符号强制“next”命令等待“first”命令以代码 0 退出,而单个 & 符号表示“在后台启动”。我们可以利用这一点为服务争取一些时间进行预热,然后再让浏览器尝试访问它。

#!/bin/sh
awhile=3
sleep $awhile && firefox http://localhost:3000/ & 
node netservice.js 

如果有帮助的话,您可以将其视为foo && bar &一个异步调用,以保证 foo 在调用 bar 之前完成。

答案2

说明书上说打开您选择的浏览器,如 Web 浏览器,即 Firefox、Chrome、嗯……Internet Explorer。

步骤 2 和 3 根本不是命令行。步骤 3 是将“localhost:3000”粘贴到浏览器的地址栏中。您可以让节点在 shell 中运行,或者附加“&”,这将启动该过程并返回到提示符。

相关内容