节点服务器启动后运行脚本

时间:2017-10-23 22:59:36

标签: javascript node.js npm webpack

我们有一个应用程序,在package.json ...

中包含以下三个脚本
"start": "concurrently --kill-others \"npm run start-electron\" \"npm run start-webpack\" -n \"electron,webpack\" -p name",
"start-electron": "electron -r babel-register ./js-file",
"start-webpack": "node -r babel-register scripts/js-file-2.js"

当我们运行npm start时,会调用start-electronstart-webpack个脚本。我们使用Concurrent来同时运行这两个脚本。

存在一个重大问题。当我们启动Webpack脚本时,它向Node服务器发出HTTP请求。由于这两个脚本同时运行,因此我们无法保证在运行Webpack脚本时节点服务器将运行。

这是我的问题。如何在节点服务器启动后立即运行Webpack脚本并避免此竞争条件?

1 个答案:

答案 0 :(得分:2)

他们真的需要彼此相邻吗?您是否有可能创建启动electron的节点程序,并在运行webpack命令之前检查它是否正在运行或等待一段时间?

作为一个想法,你可以实现这样的事情:

  • 创建一个nodejs程序,该程序读取具有服务器目标地址的参数
  • 启动电子并为给定网址创建头部请求
  • 一旦运行,启动webpack。

我猜两个命令都保持活着(webpack可能正在观看文件,电子管理服务器)。

您可以检查电子和网络包之间的集成,例如this one