运行 来自 npm 脚本的后台 http 服务器
Running http-server in background from an npm script
如何从 npm 脚本在后台启动 http-server
以便另一个 npm 脚本,例如Mocha test using jsdom,可以向 http-server
发出 HTTP 请求吗?
http-server
软件包安装有:
npm install http-server --save-dev
package.json
文件包含:
"scripts": {
"pretest": "gulp build-httpdocs",
"test": "http-server -p 7777 httpdocs/ && mocha spec.js"
},
运行 npm test
成功启动了 http-server
,当然命令在显示后挂起:
Starting up http-server, serving httpdocs/
Available on:
http://127.0.0.1:7777
http://192.168.1.64:7777
Hit CTRL-C to stop the server
是否有启动 Web 服务器的简单方法,使其不会阻止 Mocha 测试?
奖励:摩卡测试运行后如何关闭http-server
?
您可以 运行 通过在末尾附加 &
后台进程。
然后使用 npm 提供给我们的 postscript
挂钩,以终止后台进程。
"scripts": {
"web-server": "http-server -p 7777 httpdocs &",
"pretest": "gulp build-httpdocs && npm run web-server",
"test": "mocha spec.js",
"posttest": "pkill -f http-server"
}
但是如果我有多个 http-server
运行ning 呢?
您可以通过在 posttest
脚本中指定其端口来终止进程:
"posttest": "kill $(lsof -t -i:7777)"
现在 Windows,语法不同,据我所知 npm 不支持多个 OS 脚本。为了支持多个,我最好的选择是一个 gulp 任务,它将处理每个 OS 不同的任务。
大概跨平台的问题可以通过npm-run-all
解决
如何从 npm 脚本在后台启动 http-server
以便另一个 npm 脚本,例如Mocha test using jsdom,可以向 http-server
发出 HTTP 请求吗?
http-server
软件包安装有:
npm install http-server --save-dev
package.json
文件包含:
"scripts": {
"pretest": "gulp build-httpdocs",
"test": "http-server -p 7777 httpdocs/ && mocha spec.js"
},
运行 npm test
成功启动了 http-server
,当然命令在显示后挂起:
Starting up http-server, serving httpdocs/
Available on:
http://127.0.0.1:7777
http://192.168.1.64:7777
Hit CTRL-C to stop the server
是否有启动 Web 服务器的简单方法,使其不会阻止 Mocha 测试?
奖励:摩卡测试运行后如何关闭http-server
?
您可以 运行 通过在末尾附加 &
后台进程。
然后使用 npm 提供给我们的 postscript
挂钩,以终止后台进程。
"scripts": {
"web-server": "http-server -p 7777 httpdocs &",
"pretest": "gulp build-httpdocs && npm run web-server",
"test": "mocha spec.js",
"posttest": "pkill -f http-server"
}
但是如果我有多个 http-server
运行ning 呢?
您可以通过在 posttest
脚本中指定其端口来终止进程:
"posttest": "kill $(lsof -t -i:7777)"
现在 Windows,语法不同,据我所知 npm 不支持多个 OS 脚本。为了支持多个,我最好的选择是一个 gulp 任务,它将处理每个 OS 不同的任务。
大概跨平台的问题可以通过npm-run-all
解决