jsdomを使用http-server
したMochaテストなどの別のnpmスクリプトがHTTPリクエストを送信できるように、npmスクリプトからバックグラウンドでどのように開始しますhttp-server
か?
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
MochaテストをブロックしないようにWebサーバーを起動する簡単な方法はありますか?
おまけ:http-server
Mochaテストが実行された後、どのようにシャットダウンしますか?
&
最後に追加することで、プロセスをバックグラウンドで実行できます。そして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"
}
しかし、複数をhttp-server
実行している場合はどうなりますか?
posttest
スクリプトでポートを指定することにより、プロセスを強制終了できます。
"posttest": "kill $(lsof -t -i:7777)"
現在、Windowsでは構文が異なり、私が知る限り、npmは複数のOSスクリプトをサポートしていません。複数をサポートするための私の最善の策は、各OSを異なる方法で処理するgulpタスクです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加