AZURE Web 应用程序:从 Github 存储库部署 Angular SPA 和 Node Express 服务器

AZURE Web Apps: deploying Angular SPA & Node Express server from Github repository

我在 Github 存储库中有一个 Web 应用程序,它有一个 Angular 客户端和一个 Node Express 后端服务器。我不知道如何将这些同时部署到 Azure webapp。 None 的教程涵盖了这一点。他们告诉你唯一要做的就是在根目录中有一个 index.html 或 server.js,这不是我的应用程序的结构。

但我确实尝试将服务器移动到根目录中的 server.js,然后那里没有任何反应。

我不知道从哪里开始。非常感谢您的帮助。

告诉我您还需要什么信息,因为我不知道,而且这方面的文档为零。

更新:None 似乎有效。我尝试将 / 的虚拟路径切换到 index.html 所在的 dist 文件夹,但这没有做任何事情。

您似乎也在 https://social.msdn.microsoft.com/Forums/azure/en-US/a6cbc494-dc42-4962-99c7-947cee7ff25a/nodejs-deploying-angular-spa-application-node-server-through-github-continuous-integration?forum=windowsazurewebsitespreview.

上针对此问题在 MSDN 上打开了一个线程 Azure 上的

Node.js 应用程序应该在应用程序的根目录中有一个 app.jsserver.js

如果您希望 dist 文件夹中的 angular 应用程序充当 Web 应用程序的前端,而 expressjs 应用程序充当后端服务,那么这是一个解决方法。

您可以将 express js 应用程序部署在根目录中,并将 angular app 文件夹部署在同一根目录中。然后你可以在 exrepssjs 路由中配置 angular 应用程序。 E.G

假设你的angular应用程序入口是index.html在根目录的dist文件夹中:

app.get('/', function(req, res) {
    res.sendfile(__dirname+'/dist/index.html')

}); 

这会将“/”路由到您的 angular 应用。

为了解决您的问题,我建议您查看关于 pluralsight 的 shayne boyer 和 john papas 课程。他们很好地解释了这个话题。 play-by-play-angular-2-app-deployment.

我本人就是从那里开始的,但必须进行一些调整才能使其充分发挥作用。

诀窍是在本地构建文件并将构建文件提交到单独的文件夹 (dist) 中。

您还需要添加:

  1. server.js 文件。要点server.js(就像你提到的那样)
  2. package.json 文件。要点 pacakge.json。这是告诉 azure 使用哪个节点和 npm 版本。
  3. 添加 web.config。要点 web.config

如果您希望您的应用程序在提交时自动部署,您需要设置 githook。单击 link 以获取说明。同样为了让 githook 工作,你需要在你的名为 'Project' 的 Azure Web 应用程序中声明一个 APP-settings 变量,其值等于你的构建文件夹(在我的例子中是 =dist)。

我有一个 ng2 存储库,其中包含 工作演示 天蓝色。 Ng2a.Frontend。你可以在那里找到 dist 文件夹。