如何将Webpack项目输出与VSTS构建中的Asp.Net项目输出相结合?

时间:2018-06-09 19:13:38

标签: azure azure-devops azure-web-sites azure-pipelines

我的存储库包含一个Asp.Net应用程序,以及一个单独的文件夹中的React应用程序。我需要从VSTS版本部署到Azure App服务。

存储库根目录

  • MyAspNetApp

  • MyReactApp

Asp.Net应用程序是一个MVC应用程序。如果它在移动设备上检测到您,则会响应应用程序。

react应用程序是使用WebPack构建的。进行生产构建时,它会将输出复制到MyAspNetApp项目中名为“app”的文件夹中。生产构建可以通过'npm run build-prod'运行。

当我在进行git部署(kudu)时,我刚刚向deploy.cmd添加了一个命令来调用'npm install'和'npm run build-prod'。然后是另一个命令将这些文件复制到部署目录的根目录('wwwroot')。

既然我正在使用VSTS来构建和部署(单独的步骤),我无法弄清楚如何将'app文件夹转换为wwwroot。在构建步骤中,我尝试从“app”文件夹中获取内容并将其放入名为“mobile”的工件中。然后在部署步骤中,使用“复制文件”步骤将“移动”工件复制到$(build.artifactstagingdirectory)/ app,但它们不会显示在azure上的wwwroot中。

我在这里缺少什么?

编辑:在MS VS Community site发布此处,以期获得回复。如果我在那里得到答案,我会更新这篇文章。

1 个答案:

答案 0 :(得分:1)

使用Azure App Service Deploy任务,如果选中“使用Web Deploy发布”选项,则需要将所有必需的文件放在zip文件中,并在“包”或“文件夹”输入框中指定此文件。

您也可以取消选中“使用Web Deploy发布”选项,并指定应用程序的根文件夹路径。

请参阅以下步骤:

  1. 通过Visual Studio构建任务使用文件系统发布方法发布MVC应用程序
  2. 运行NPM命令以通过NPM任务构建React应用程序
  3. 将应用程序构建的文件复制到MVC app部署文件夹的必要文件夹
  4. (可选)如果要使用Web部署发布,则通过存档文件Zip文件夹
  5. 添加Azure App Service Deploy任务(可以在发布中)并指定包或文件夹。