2015-04-15 4 views
9

Jedes mal watchify erkennt eine Änderung, die Bundlezeit wird langsamer. Es muss etwas in meiner Schluckaufgabe falsch sein. Irgendwelche Ideen?Watchify w/gulp und babel wird progressiv langsamer

+1

Ich glaube, ich es schon fest und fügte hinzu, diese beiden Optionen zu dem Bündel scheinen es zu beheben: cache: {}, Package: {} – Niels

+0

Diese Optionen sind erforderlich, um Verwende watchify. – JMM

+0

Ich habe diese Optionen konfiguriert, sehe aber immer noch ein ähnliches Problem. Mit jedem Durchlauf erhöht sich die Wiederherstellungszeit, selbst wenn die Datei nur berührt wird (keine tatsächlichen Änderungen), bis sie schließlich mit einem RangeError stürzt: Maximale Callstack-Größe überschritten – Emily

Antwort

36

Ich hatte das gleiche Problem und untersuchte es, indem ich die Umgebungsvariable DEBUG auf Babel setzte. Beispiel:

Nach der Überprüfung der Debug-Ausgabe bemerkte ich, dass die Babelify-Transformationen mehrere Male ausgeführt wurden.

Der Täter war, dass ich die Transformation jedes Mal hinzugefügt, wenn das Paket ausgeführt wurde. Sie scheinen das gleiche Problem zu haben.

das Verschieben

.transform(babelify.configure({ 
    ignore: /(bower_components)|(node_modules)/ 
})) 

von innen executeBundle in die Aufgaben. Die neue bundle-watch könnte wie folgt geschrieben werden:

gulp.task('bundle-watch', function() { 
    var bundle = browserify({ 
     debug: true, 
     extensions: ['.js', '.jsx'], 
     entries: path.resolve(paths.root, files.entry) 
    }); 

    bundle = watchify(bundle); 
    bundle.transform(babelify.configure({ 
     ignore: /(bower_components)|(node_modules)/ 
    })) 
    bundle.on('update', function(){ 
     executeBundle(bundle); 
    }); 
    executeBundle(bundle); 
}); 
+3

Ich wünschte, ich könnte das mehr aufwerten. Ich hätte lange gebraucht, um das herauszufinden. – joemaller

+0

Gut entdeckt! Das Verschieben der Transformation aus der Methode, die aufgerufen wird, watchify update behebt ein ähnliches Problem, das ich mit dem Build-Prozess hatte, der im Laufe der Zeit immer länger dauert. –

Verwandte Themen