Dem*_*ian 15 javascript background-process httpserver node.js npm
你如何http-server从npm脚本开始后台,以便另一个npm脚本,如使用jsdom的Mocha测试,可以发出HTTP请求http-server?
该http-server软件包安装时:
npm install http-server --save-dev
Run Code Online (Sandbox Code Playgroud)
该package.json文件包含:
"scripts": {
"pretest": "gulp build-httpdocs",
"test": "http-server -p 7777 httpdocs/ && mocha spec.js"
},
Run Code Online (Sandbox Code Playgroud)
运行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
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法来启动Web服务器,因此它不会阻止Mocha测试?
额外奖励:http-server摩卡测试结束后你如何关闭?
Ale*_*dis 16
您可以通过追加&到后台来运行后台进程.然后使用postscript钩子,npm提供给我们以便杀死后台进程.
"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"
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我有多个http-server跑步怎么办?
您可以通过在posttest脚本中指定其端口来终止进程:
"posttest": "kill $(lsof -t -i:7777)"
Run Code Online (Sandbox Code Playgroud)
现在对于Windows,语法是不同的,据我所知,npm不支持多个OS脚本.为了支持多个我最好的选择将是一个gulp任务,将处理每个操作系统不同.
| 归档时间: |
|
| 查看次数: |
8110 次 |
| 最近记录: |