2017-08-15 136 views
0

我目前有一個使用vue-cli和socket.io服務器構建的npm項目。如何將npm項目部署到Heroku?

這是我的項目是如何構成的:

Project/ |--node_server/ | |--server.js |--src/ | |--main.js | |--App.vue | |--other .vue files and folders

我不知道如何部署在Heroku上這個程序,因爲我需要運行兩個腳本,同時部署這是node server.js(在node_server文件夾)和npm run buildnpm run dev(在根文件夾中)。

如何成功部署它的步驟是什麼?當我推送並自動構建它時,Heroku會從github中獲取我的項目。我嘗試過部署,但最終出現了一個錯誤頁面。

+0

,你可以在你的包中指定'start'腳本。 json像'node server.js&npm run build' – hisener

+0

請問你可以添加步驟嗎?如何指定兩個腳本。 –

+0

我剛剛發佈了一個答案。 – hisener

回答

1

假設您需要先用build腳本構建前端,然後您需要運行start腳本node server.js來運行nodejs服務器。

... 
    "scripts": { 
    "build": "gulp or something idk" 
    "prestart": "npm run build", 
    "start": "node node_server/server.js", 
    }, 
    ... 

但是如果你需要在同一時間運行這兩個腳本,你可以用類似的東西做到這一點:

... 
    "scripts": { 
    "build": "gulp or something idk" 
    "start": "npm run build & node node_server/server.js", 
    }, 
    ... 

我希望這將是有益的。

舉個例子,你可以看看我的項目之一的package.json:https://github.com/hisener/pirate-radio/blob/master/package.json

欲瞭解更多信息,請參閱https://docs.npmjs.com/misc/scripts

+0

非常感謝,請在第二個代碼段添加另一個**&**。我試過編輯,但沒有起作用 –

+0

@KofiMokome如果你想讓兩個命令同時運行,你可以使用&。 &&表示按順序運行命令。 – hisener

+0

再次感謝@hisener。你的解決方案工作完美,但我意識到節點服務器和套接字服務器正試圖使用​​相同的端口,並導致錯誤。任何想法如何解決它? –