2017-07-18 65 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\/)/ 
});