如何从 npm 脚本等待服务器启动完成?

use*_*178 5 race-condition node.js

我正在尝试为节点应用程序运行功能测试。

在我的package.json我有以下脚本:

"scripts": {
  "web-server": "NODE_ENV=test node app.js &",
  "test": "npm run web-server && mocha ./tests/functional/*.js --exit",
  "posttest": "pkill -f node"
}
Run Code Online (Sandbox Code Playgroud)

但是在运行它时,测试会在服务器完成启动之前运行。

如何等待服务器?

aka*_*ppi 5

我今天找到了等待并喜欢它的方法。它只做等待,而不是例如命令启动。

与 一起使用concurrently,如下所示:

"scripts": {
    "xxx": "concurrently -n server,mocha \"npm run web-server" \"npx wait-on http://localhost:8080 && npx mocha ...\"",
Run Code Online (Sandbox Code Playgroud)

想向新访客提及。我认为wait-on目前是标题问题的最佳答案。