如何基于环境/运行配置在发布之前/之后执行不同的gulp任务?

时间:2016-02-27 20:53:10

标签: asp.net asp.net-core asp.net-core-mvc

我有一个小的单页asp.net核心站点,只提供来自wwwroot的静态文件。我为这个站点提供了几种不同的环境/运行配置。我希望在发布每个配置之前根据我当前在构建时的环境运行不同的gulp任务,或者以其他方式根据我所在的版本准备我的静态文件。到目前为止,在asp.net核心中有什么方法可以做到这一点?

这个问题与How to rewrite a file before publish based on build configuration?非常相似,但除非有一种方法可以在部署后在服务器上运行gulp任务,否则最常见的答案在我的情况下不起作用。

1 个答案:

答案 0 :(得分:2)

我通过手动将以下内容添加到.xproj标记中的项目<Project>文件中解决了问题:

<Target Name="BeforeBuild">
    <Message Text="Running gulp task: $(ConfigurationName)" Importance="high" />
    <Exec Command="cmd.exe /c gulp --color --gulpfile &quot;.\gulpfile.js&quot; $(ConfigurationName)" WorkingDirectory="$(ProjectDir)" />
</Target>

该命令将使用项目根目录中的Debug以当前运行配置名称(例如Releasegulpfile.js)命名的任务执行gulp。

在我的gulp文件中,我为每个运行配置添加了这样的任务(对于Realese):

gulp.task('Release', function () {
    // your release gulp steps here, eg. minification and rev-ing
});