2015-10-02 10 views
7

Ich imitierte den Code von John Papas hervorragendem Pluralsight-Kurs auf Gulp.Wie man Typfehler repariert, während man gulp-filter benutzt?

Wenn ich den Code verwenden, wie in John Kurs gezeigt:

.pipe(jsFilter) 
.pipe($.uglify()) 
.pipe(jsFilter.restore()) 

bekomme ich einen Fehler in der 3. Zeile Code:

TypeError: Object #<StreamFilter> has no method 'restore' 

Wenn ich den Code verwenden, wie in der Readme gezeigt von gulp-filter

.pipe(jsFilter) 
.pipe($.uglify()) 
.pipe(jsFilter.restore) 

Ich bekomme einen Fehler, dass es nicht zu undefined führen kann.

Basierend auf dem, was ich online finden kann, funktionieren diese beiden Muster für andere. Irgendwelche Hinweise, warum dies passieren könnte?

Hier ist die ganze Aufgabe, wenn das hilft und die Konsolenprotokollierung zeigt an, dass alles in Ordnung ist, bis der Filter wiederherstellen aufrufen.

Hier ist die gesamte Aufgabe, wenn das hilft:

gulp.task('build-dist', ['inject', 'templatecache'], function() { 
    log('Building the distribution files in the /dist folder'); 

    var assets = $.useref.assets({searchPath: './'}); 
    var templateCache = config.temp + config.templateCache.file; 
    var jsFilter = $.filter('**/*.js'); 

    return gulp 
     .src(config.index) 
     .pipe($.plumber({errorHandler: onError})) 
     .pipe($.inject(gulp.src(templateCache, {read: false}), { 
      starttag: '<!-- inject:templates:js -->' 
     })) 
     .pipe(assets) 
     .pipe(jsFilter) 
     .pipe($.uglify()) 
     .pipe(jsFilter.restore()) 
     .pipe(assets.restore()) 
     .pipe($.useref()) 
     .pipe(gulp.dest(config.dist)); 
}); 
+0

Sie sollten Andeis Antwort als Antwort markieren –

Antwort

11

Die Art und Weise restore Werke haben zwischen der 2.x und 3.x Version von schluck-Filter verändert.

Es scheint Sie die 3.x Zweig verwenden, so um restore zu verwenden, werden Sie die restore Option true setzen müssen, wenn Sie den Filter definieren:

var jsFilter = $.filter('**/*.js', {restore: true}); 

Dann werden Sie sein Lage

.pipe(jsFilter.restore) 

für weitere Informationen, lesen Sie in diesem Abschnitt der Dokumentation für die neueste Version von schluck-Filter zu tun:

https://github.com/sindresorhus/gulp-filter/tree/v3.0.1#restoring-filtered-files