2017-09-29 412 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

相關問題