2017-08-15 109 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。你的解决方案工作完美,但我意识到节点服务器和套接字服务器正试图使用​​相同的端口,并导致错误。任何想法如何解决它? –