如何将MEAN Stack部署到Web主机

时间:2015-05-23 03:25:40

标签: angularjs node.js git heroku mean-stack

我有一个节点API和一个角度前端项目(通过grunt,bower,yeoman流结构)作为两个独立的github存储库。我试图通过Heroku将它们推向生产。来自rails bg,应用程序中的所有内容都存在于同一项目目录中,而您只需要推送一个目录,您将如何执行此操作?我应该将这两个项目作为单独的heroku项目推出,还是有最佳实践?我很感激任何建议,谢谢你。

1 个答案:

答案 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

另外,如果您还没有这样做,则需要在第三方提供商处设置数据库(例如mongolabmodulus)。