Running http-server in background from an npm script
Probably the cross platform problem can be solved by npm-run-all
You can run a process in background by appending &
in the end.
And then use the postscript
hook that npm offers us, in order to kill the background process.
"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"
}
But what if I have multiple http-server
running?
You can kill a process by specifying its port in the posttest
script:
"posttest": "kill $(lsof -t -i:7777)"
Now for Windows, syntax is different and as far as I know npm doesn't support multiple OS scripts. For supporting multiple my best bet would be a gulp task that will handle each OS different.