2016-04-15 55 views
0

我发现的关于此主题的最后一篇文章是从2015年秋季开始的。我认为这是每个开发人员迟早需要的基本功能之一。有没有任何进展的发展来解决Task Runner Explorer中的调试/发布区分问题?

我想根据实际的构建配置(调试/暂存/发布)等来区分我的大量任务。我实际上并不需要将它与Visual Studio的解决方案配置连接起来。

下面是一个建议的解决方案:我们将此作为Task Runner Explorer中的一个选项,然后在任务绑定中,我可以在需要运行任务的配置中打勾。

难道只有我需要这个吗?

回答

0

我不使用TRX,但可以将这些任务中的任何一个绑定到“项目打开”或“构建之前”之类的事件。我使用gulp-if并在我的父任务中设置变量,然后使用run-sequence调用所有子任务。 (未测试的代码)

gulpfile.js

var gulp = require('gulp'), 
     $ = require('gulp-load-plugins')(), 
     requireDir = require('require-dir')('./js/gulp/tasks'), 
     runSequence = require('run-sequence'), 
     vars = require('./variables'); 

gulp.task('dev', function(){ 
     vars.isProduction = false; 
     runSequence('clean', ['css', 'scripts']); 
}); 
gulp.task('prod', function(){ 
     vars.isProduction = true; 
     runSequence('clean', ['css', 'scripts']); 
}); 

/js/gulp/tasks/scripts.js

gulp.task('scripts', function() { 
    return gulp.src('scripts/**/*.js') 
     .pipe($.concat('app.min.js')) 
     .pipe($.if(vars.isProduction, $.uglify())) 
     .pipe(gulp.dest('/js')) 
     .pipe($.plumber({ 
      errorHandler: vars.onError 
     })) 
     .pipe($.if(!vars.isProduction, $.livereload())); 

variables.js

module.exports = { 
    isProduction: false, 
    onError: function (err) { 
     log(err); 
    } 
}; 
+0

谢谢你 你的答案。我还不知道如何在TRX AfterBuild中分别绑定'dev'和'prod'任务(例如)。你仍然需要一些关于使用哪一个的设置,或者我误解了某些东西。 –

+0

我可能误解了你的OP不需要绑定到Visual Studio的解决方案配置。但是我的开发任务通常只是吞噬观察者,我在[单独的命令窗口](https://visualstudiogallery.msdn.microsoft.com/4e84e2cf-2d6b-472a-b1e2-b84932511379)中运行这些任务。如果您使用构建服务器,则可以将构建任务作为构建定义的一部分运行 – Barryman9000

相关问题