如何将 MEAN Stack 部署到网络主机

Posted

技术标签:

【中文标题】如何将 MEAN Stack 部署到网络主机【英文标题】:How to deploy MEAN Stack to web host 【发布时间】:2015-08-05 04:17:38 【问题描述】:

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

【问题讨论】:

添加了更多细节... 【参考方案1】:

首先,我会查看official Heroku doc on deploying nodejs apps

如果您有两个项目,您可能希望将它们部署为不同的 heroku 应用程序。

这里的关键是确保您的 package.json 设置正确。确保您的所有依赖项都正确且存在,并且您的 package.json 指向您的节点服务器脚本。确保您的开发依赖项(如 grunt)也与生产依赖项分开,因为这些不需要部署到生产中。如果这只是一个演示应用程序,您可以让 heroku 安装所有脚本(如 Angular),只需将它们包含在您的 package.json 中即可。当您推送您的应用程序时,它将在您的 package.json 上运行 npm install 并安装它的依赖项。

您还可以通过几种方式进行部署 - 通过 heroku cli、github 链接或 Dropbox 链接。 cli我个人用的不多,但是发现另外两个用起来很方便,尤其是你已经push到github的时候。

还有一个关键是,如果您需要使用 bower 安装依赖项,您应该知道 heroku 自己运行 bower install。您可以通过将以下内容添加到您的 package.json 来告诉 heroku 运行它:

"scripts": 
  "postinstall": "bower install"

这将导致它在npm install 完成后运行bower install

另外,如果您还没有这样做,您需要在某个地方使用第 3 方提供商(例如 mongolab 或 modulus)设置您的数据库。

【讨论】:

以上是关于如何将 MEAN Stack 部署到网络主机的主要内容,如果未能解决你的问题,请参考以下文章

部署 MEAN Stack 应用程序,托管问题

Node.js MEAN Stack App 在本地工作,但无法部署到 Heroku

如何将 MEAN 堆栈部署到我的托管服务器?

MEAN Stack - 将云 MongoDB 连接到 Angular 应用程序?

部署生产 MEAN Stack 应用程序的指南 [关闭]

如何在 MEAN STACK Web 应用程序中启用 CORS?