2016-08-29 59 views
0

我有一個簡單咕嘟咕嘟配置transpile我的JavaScript與巴貝爾:ES6進口和要求不與正常工作一飲而盡/ 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)); 
}); 

有了這個,我可以導入我的開發文件。 但我不能導入一些安裝了npm的軟件包(同位素,textfit,babel-polyfill ...)。

例如,如果我導入我的index.js文件巴貝爾,填充工具:

import "babel-polyfill"; 

與一飲而盡沒有錯誤,並且代碼似乎dev.js以復加,但它不工作,和我不能要求它:它給出一個空的對象。

與其他npm模塊(例如同位素)相同。當我require他們,它只是給一個空的對象。同位素應該與require一起工作。

任何想法發生了什麼?

謝謝。

+0

'babel-polyfill'不會輸出任何東西... – robertklep

+0

也許,但同位素確實(或應該)。 babel-polyfill應該允許我用於...循環,對吧?如果在導入之後做一個for ...循環,它會給我一個xxx [Symbol.operator]不是一個函數。 – MrJambon

+0

以下是生成的代碼: 'import「babel-polyfill」; 爲(讓{ '測試':1}的噸){ 警報(噸) }' :http://pastebin.com/pQUDLpYg – MrJambon

回答

0

好吧,我發現它。 我的JavaScript文件被添加到已經使用AMD/Require.js的CMS中。這與browserify衝突。

解決方案was here

0

什麼這樣做:

import BabelPolyfill from "babel-polyfill" 
+0

沒有差別。 – MrJambon

+0

它到底是如此嗎? :) – alberto2000