2016-11-04 71 views
4

我们在VSTS上使用托管构建代理来构建Azure应用服务并将其发布到ASP.NET Core代码。VSTS托管构建WebPack

我的问题是:我们可以在VSTS上运行WebPack来处理这个托管构建的前端任务,还是必须在将代码检入到我们的存储库之前手动执行它?

更新: 我利用新的ASP.NET核心版本(预览版)的模板,是可在VSTS - 见下:

enter image description here

以下是具体步骤 - 开箱:

enter image description here

+0

您如何运行WebPack?构建vNext是非常可定制的,如果需要,可以轻松添加cmd调用的powershell。 – DaveShaw

+0

@DaveShaw我更新了原文。我正在使用VSTS上提供的ASP.NET Core Build。你在说,我可以添加一个运行PowerShell脚本的新步骤。在我的情况下,我想我会让它成为第二步,即在恢复之后但在构建之前。 – Sam

+0

是的,这将工作。还有其他方法可以将其放入到发布任务中。NetCore在project.json中,但我不知道该怎么做,我的.NET Core应用程序免费提供:) – DaveShaw

回答

0

的WebPack是明确不VS2015和VSTS中的头等公民。在我的情况下简化CI/CD的webpack是一件非常头疼的事情,特别是当webpack是通过一个庞大的单片SPA(ASP.NET 4.6,Kendo,15,000个文件,2000个文件夹)来解决可怕的性能问题的时候。为了简化,在尝试了很多场景以确保刚刚重建的捆绑包最终会在IIS和Azure Web应用程序中结束后,我进行了2遍构建。 VSTS任务的顺序如下:npm install global,npm install local,npm webpack install local,npm webpack install global,build pass 1,webpack,build pass 2等等...这可以与托管代理和私人代理一起工作,提供由于webpack安装在主机和私人位置不同的位置(未找到选择webpack安装位置以保持一致性的方式),因此您为webpack提供了正确的路径。我开始构建之前烧毁所有东西。还需要在VS2015解决方案中做到这些:(1)卸载“内置”文件夹,并(2)添加内容Include =“Built \ StarStar”在项目文件中。该“”文件夹中包含的捆绑,并应显示为灰色,否则更坏的惊喜和不稳定性,处理...

在VSTS BUILD

构建通#2任务允许收集通过建设 - 产生的新鲜束通过#1并将它们自动包含在要发布的包中。

没有第二个构建通道,收集捆绑包并将它们合并到压缩包中是一场噩梦,尤其是当您有15,000个文件解压缩然后重新压缩(每个文件300毫秒!!)时。没有找到可以在VSTS中使用的文件合并功能。

我有听到有人为webpack提出了一个更有效的CI/CD方案。与此同时,我的2-pass-build解决方法工作完美无瑕,但速度确实缓慢。

我预计ASP.NET Core,Angular 2和webpack的发展将会优雅地解决这个问题。