【发布时间】:2017-12-08 15:08:42
【问题描述】:
我无法弄清楚如何使用 VSTS 将任意目录从我的构建部署到 azure Web 应用程序。
任意目录是在构建步骤期间生成的,其中包含我的应用程序的 webpack 捆绑 javascript。详情如下:
我有一个 MVC 5 应用程序,我刚开始使用 webpack 来捆绑我的打字稿文件的输出。 webpack 创建一组包并将它们写入 $(project_dir)/Scripts/bundles。
我所有的打字稿源都在 /Scripts 下的各种其他目录中(App、Api、Lib 等)。但是从VS项目的角度来看,bundles是空的,而是添加到项目中的。
一切都在本地运行良好。我可以进行调试构建,然后 webpack-dev-server 提供捆绑包。我可以进行发布构建,并且 webpack 会愉快地在 /Scripts/bundles 中的磁盘上创建包。我的代码愉快地使用了这些捆绑包。
我已编辑项目文件以包括:
<Content Include="Scripts\Bundles\**" />
如果我在 Visual Studio 中进行发布,一切都会很好。但是 VSTS 似乎不承认项目的这一部分
我们使用 VSTS 来构建和发布到 azure。我一辈子都想不通如何让 VSTS 发布这个 /Scripts/bundles 目录。
在我的项目属性中,我创建了一个运行 webpack 的预构建步骤。我知道这些文件在构建结束时位于 Scripts/bundles 目录中,因为我最接近这项工作的是让 VSTS 构建第二个工件,即该 bundles 目录的 zip 文件,文件是在那里。
如果我知道以下其中一项(我认为),我可以解决我的问题:
- 如何让任意目录像正常构建输出一样显示在主工件中 - 然后我可以使用我的标准发布定义将其推送到天蓝色
- 如何在发布定义中发布第二个工件?
如果你能解决 #2,问题是在为 /Scripts/bundle 构建工件时,它将 bundle 目录的内容放在 zip 文件的根目录中,而不是将 bundle 作为 zip 文件的根目录文件。所以当我解压文件时,它必须先创建 /Scripts/bundle 然后解压。
【问题讨论】:
标签: azure azure-devops azure-pipelines