Node.js npm脚本与expressjs的顺序

Node.js npm脚本与expressjs的顺序,node.js,express,npm,nightwatch.js,Node.js,Express,Npm,Nightwatch.js,我需要按顺序运行三个脚本,中间是启动expressjs服务器 以下是我的脚本: npm运行构建 npm启动 node./node\u模块/nightwatch/bin/runner.js-c./nightwatch.json 原因是nightwatch需要运行一台服务器来进行测试,但在启动expressjs时,我被困在日志/进程中,无法继续执行下一个脚本。当我有npm start&时,它确实在后台运行,但启动时间比nightwatch第三个脚本要长,因此nightwatch调用尚未启动的服务器并

我需要按顺序运行三个脚本,中间是启动expressjs服务器

以下是我的脚本:

  • npm运行构建

  • npm启动

  • node./node\u模块/nightwatch/bin/runner.js-c./nightwatch.json


  • 原因是nightwatch需要运行一台服务器来进行测试,但在启动expressjs时,我被困在日志/进程中,无法继续执行下一个脚本。当我有
    npm start&
    时,它确实在后台运行,但启动时间比nightwatch第三个脚本要长,因此nightwatch调用尚未启动的服务器并失败。

    您可以向package.json添加一个脚本,例如,我添加了按顺序运行3个命令的watch脚本,每个命令只有在前一个命令成功时才会运行,所以我可以运行:npm run watch

    package.json
    "scripts": {
        "nightwatch": "node ./node_modules/nightwatch/bin/runner.js -c
         ./nightwatch.json",
         'build':'.....',
         'start':'.....',
         "watch":'npm run build && npm start && npm run nightwatch'
      }
    
    希望这能有所帮助,但没有经过测试,您可以阅读这篇文章。

    诀窍是使用包作为执事运行服务器,并使用sleep命令在启动nightwatchjs之前等待服务器启动

    以下是npm脚本命令:

    forever start app.js && sleep 5 && nightwatch --env chrome,default && forever stopall
    
    最后别忘了停止所有的执事


    致以最诚挚的问候

    这就是我目前所拥有的,问题是启动脚本是expressjs,这是一个在执行CMD+C之前不会关闭的进程,因此它永远不会进入第三个进程。尝试将&&更改为&,但服务器启动需要大约3-4秒的时间,而nightwatch会立即启动,但没有服务器运行并且失败