Wenn Sie Affen-Patch Gulp wollen, wird folgendes mit Gulp Version arbeiten 3.9.0
:
var _gulpStart = gulp.Gulp.prototype.start;
var _runTask = gulp.Gulp.prototype._runTask;
gulp.Gulp.prototype.start = function (taskName) {
this.currentStartTaskName = taskName;
_gulpStart.apply(this, arguments);
};
gulp.Gulp.prototype._runTask = function (task) {
this.currentRunTaskName = task.name;
_runTask.apply(this, arguments);
};
gulp.task('jscs', function() {
console.log('this.currentStartTaskName: ' + this.currentStartTaskName);
console.log('this.currentRunTaskName: ' + this.currentRunTaskName);
});
gulp.task('jshint', function() {
console.log('this.currentStartTaskName: ' + this.currentStartTaskName);
console.log('this.currentRunTaskName: ' + this.currentRunTaskName);
});
gulp.task('build', ['jshint', 'jscs']);
gulp build
ausführen, werden die folgenden Konsolenausgabe ergeben:
c: \ Projekt> Schluck bauen
[16.38.54] Mit gulpfile c: \ project \ gulpfile.js
[16.38.54] Ab 'jshint' ...
this.currentStartTaskName: bauen
this.currentRunTaskName: jshint
[16.38.54] Finished 'jshint' nach 244 & mgr; s
[16.38.54] Ab 'jscs' ...
this.currentStartTaskName: bauen
this.currentRunTaskName: jscs
[16: 38:54] Beendete "jscs" nach 152 μs
[16:38:54] Start 'bauen' ...
[16:38:54] Fertig 'bauen' nach 3.54 μs
Wird dies geändert? Ich bekomme undefined auf currentTask – JimmyRare
@JimmyRare - Es funktioniert, wenn Sie den Geltungsbereich der Variable 'currentTask' beobachten. Wenn Sie 'var currentTask;' vor diesem Block setzen und dann 'this.currentTask' in' currentTask' an beiden Stellen ändern, funktioniert es einwandfrei. Es wird erwartet, dass dieser Code innerhalb des Umfangs eines anderen Objekts liegt (daher die "This" -Referenz). – NightOwl888