2016-08-29 3 views
0

Ich habe eine einfache Konfiguration Gulp meinen Javascript mit babel transpile:ES6 Importe und erfordern nicht richtig mit schluck/browserify/babelify

gulp.task('js_dev', function() { 
    var bundler = browserify({entries: ['js/index.js'], debug: true}); 
    bundler.external('jquery'); 
    return bundler 
     .transform("babelify", {presets: ["es2015"]}) 
     .bundle() 
     .on('error', function (err) { 
      console.error(err); 
      this.emit('end'); 
     }) 
     .pipe(source('dev.js')) 
     .pipe(gulp.dest(jsdest)); 
}); 

Damit kann ich meine Entwicklungs-Dateien importieren. Aber ich kann ein Paket mit npm (Isotop, Textfit, Babel-Polyfill ...) nicht importieren.

Zum Beispiel, wenn ich importiere babel-polyfill in meiner index.js Datei:

import "babel-polyfill"; 

keine Fehler mit großem Schluck, und der Code scheint in dev.js hinzugefügt werden, aber es funktioniert nicht, und Ich kann es auch nicht verlangen: Es gibt ein leeres Objekt.

Gleiche Dinge für andere npm Module (Isotop zum Beispiel). Wenn ich sie require, gibt es nur ein leeres Objekt. Und Isotope soll mit require arbeiten.

Irgendeine Idee was passiert?

Danke.

+0

'babel-polyfill' exportiert nichts ... – robertklep

+0

Vielleicht, aber Isotop tut (oder sollte). Und babel-polyfill sollte mir erlauben, für ... Schleifen zu verwenden, oder? Wenn mache ich eine for ... Schleife direkt nach dem Import, gibt es eine a xxx [Symbol.operator] ist keine Funktion. – MrJambon

+0

Hier ist der generierte Code für: 'Import" Babel-Polyfill "; für (t { 'test': 1} lassen) { alert (t) } ' : http://pastebin.com/pQUDLpYg – MrJambon

Antwort

0

Okay, ich es gefunden. Meine JavaScript-Dateien wurden zu einem CMS hinzugefügt, das bereits AMD/Require.js verwendet. Dies steht im Widerspruch zu browserify.

Die Lösung was here.

0

Was ist zu tun:

import BabelPolyfill from "babel-polyfill" 
+0

Es macht keinen Unterschied. – MrJambon

+0

So war es am Ende? :) – alberto2000

Verwandte Themen