我有一个节点API和一个角度前端项目(通过grunt,bower,yeoman流结构)作为两个独立的github存储库。我试图通过Heroku将它们推向生产。来自rails bg,应用程序中的所有内容都存在于同一项目目录中,而您只需要推送一个目录,您将如何执行此操作?我应该将这两个项目作为单独的heroku项目推出,还是有最佳实践?我很感激任何建议,谢谢你。
答案 0 :(得分:3)
首先,我会审核official Heroku doc on deploying nodejs apps
如果您有两个项目,您可能希望将它们部署为不同的heroku应用程序。
这里的关键是确保你的package.json设置正确。确保所有依赖项都正确并且存在,并且package.json指向节点服务器脚本。确保您的dev依赖项(如grunt)与生产依赖项分开,因为这些不需要部署到生产环境中。如果这只是一个演示应用程序,您可以让heroku安装所有脚本(如角度),只需将它们包含在package.json中即可。当您推送应用程序时,它将在您的package.json上运行npm install
并将其安装为依赖项。
您还可以通过heroku cli,github链接或Dropbox链接进行部署。我没有亲自使用cli,但我发现另外两个使用方便,特别是如果你已经推送到github了。
一个关键的问题是,如果您需要使用bower安装依赖项,您应该知道heroku 不会在其上运行bower install
。您可以通过将以下内容添加到package.json来告诉heroku运行它:
"scripts": {
"postinstall": "bower install"
}
这将导致它在bower install
完成后运行npm install
。