2017-07-18 44 views
0

我有一個使用Object.assign的外部NPM依賴項。我想要使​​用Babel來確保與舊瀏覽器的兼容性,可以通過helper轉換Object.assign或使用其他方法替換它,但它不起作用。Object.assign Babel與外部npm dep

PS:我可以在代碼頂部使用填充工具,我想避免這種情況,因爲它是一個庫(https://babeljs.io/docs/plugins/transform-object-assign/

的依賴關係是:https://github.com/krux/postscribe 通過var postscribe = require('postscribe');

我.babelrc CONF:

{ 
    "presets": [ 
    ["env", { 
     "targets": { 
      "browsers": ["Android 4", "iOS 7"] 
     } 
    }] 
], 
    "plugins": ["transform-object-assign"] 
} 

咕嘟咕嘟的conf:

gulp.task('adtag', function() { 
// set up the browserify instance on a task basis 
var b = browserify({ 
    entries: './src/adtag/main.js', 
    debug: true 
}).transform(babelify) 

return b.bundle() 
    .pipe(source('smaatoAdTag.min.js')) 
    .pipe(buffer()) 
    .pipe(sourcemaps.init({ 
     loadMaps: true 
    })) 
    // Add transformation tasks to the pipeline here. 
    .pipe(uglify()) 
    .on('error', gutil.log) 
    .pipe(sourcemaps.write('./')) 
    .pipe(gulp.dest('./dist/adtag/')); 
}); 

是否有任何方法來替代Object.assign如果是在一個依賴項,而不是在主代碼?

+0

什麼是依賴和它是如何裝? –

+0

我已更新信息的問題。謝謝! – ayxos

+1

如果這是您關心的唯一代碼,請使用polyfill https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign –

回答

1

檢查出babelify

的文檔,您可以使用:

browserify().transform("babelify", { 
    global: true, 
    ignore: /\/node_modules\/(?!postscribe\/)/ 
});