2017-09-29 181 views
-2

我正在为一个开源框架创建一个示例项目。为了让我的演示运行,它的一些依赖关系必须在其他端口上运行本地服务器。什么是启动多个本地node.js服务器的正确方法?

我宁愿给他们提供一个命令来运行,而不是告诉他们打开多个终端并在其中运行多个命令。

什么是最好/最正确/最优雅的方式去做这件事?

+0

Docker对我来说听起来像是一个理想的解决方案,但另一方面,如果用户不熟悉它,它会增加额外的一层复杂性。 –

+0

如果您需要对底层服务进行控制,您可以考虑运行一个主进程并使用'child_process.fork'生成剩余的服务器和进程。我喜欢这种方法,因为它允许我监视和管理进程,并整合控制台输出和IPC。 – Thebluefish

回答

0

这是我如何完成这两个Web服务器。你应该可以玩更多的&fg以获得更多的服务器。

的package.json

{ 
    "scripts": { 
     "start": "node node_modules/something/server.js & node server.js && fg 
    } 
} 

因此,用户只需运行npm install然后npm start在一个终端和ctrl-c同时杀死运行两个服务器。

击穿:
node node_modules/something/server.js &运行该服务器在后台
node server.js &&运行我的服务器在前台
fg移动最近转到后台壳放到前台

+0

另外值得注意的是,你会想确保每个配置都在不同的端口上运行。在大多数情况下,节点服务器需要一个PORT环境变量来做到这一点。 – Paul

-1

使用concurrently NPM包。

concurrently "node server.js" "node client.js"

这允许你写一气呵成用干净的输出多个命令。他们不只是节点服务器。你可以组合任何bash命令。

+0

与package.json结合使用,您可以将所有这些内容放在单个脚本中,就像您想要的那样。 – nkprince007

相关问题