2016-04-15 6 views
0

Der letzte Beitrag, den ich zu diesem Thema gefunden habe, stammt aus Herbst 2015. Ich denke, dies ist eines der grundlegenden Dinge, die jeder Entwickler früher oder später benötigt.Gibt es eine fortschreitende Entwicklung, um die Unterscheidung zwischen Debug und Release im Task Runner Explorer zu lösen?

Ich möchte meine Schluckaufgaben anhand der tatsächlichen Buildkonfiguration (Debug/Staging/Release) usw. unterscheiden. Ich muss sie nicht wirklich mit der Lösungskonfiguration von Visual Studio verbinden.

Hier ist eine vorgeschlagene Lösung: Wir hätten dies als Option im Task Runner Explorer, und dann bei der Aufgabenbindung könnte ich einchecken, in welchen Konfigurationen ich die Aufgabe ausführen möchte.

Benötige ich nur mich?

Antwort

0

Ich benutze TRX nicht, aber Sie können jede dieser Aufgaben an ein Ereignis wie "Projekt öffnen" oder "vor Build" binden. Ich verwende gulp-if und setze Variablen in meiner übergeordneten Aufgabe, dann rufe alle untergeordneten Aufgaben mit run-sequence auf. (Ungetestete Code)

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

Danke für Deine Antwort. Ich verstehe noch nicht, wie Sie die "dev" - und "prod" -Tasks in TRX AfterBuild (zum Beispiel) separat binden würden. Du brauchst noch eine Einstellung darüber, welche du verwenden sollst, oder vielleicht habe ich etwas falsch verstanden. –

+0

Ich habe Ihr OP möglicherweise missverstanden, dass es nicht an die Lösungskonfiguration von Visual Studio gebunden werden muss. Meine Entwickleraufgaben sind normalerweise nur Schluckbeobachter, und ich führe diese in einem [separaten Befehlsfenster] (https://visualstudiogallery.msdn.microsoft.com/4e84e2cf-2d6b-472a-b1e2-b84932511379). Wenn Sie einen Build-Server verwenden, können Sie die Prod-Tasks als Teil der Build-Definition ausführen – Barryman9000