Object.assign Babel with external npm dep

时间:2017-07-18 12:52:39

标签: javascript gulp babeljs

我有一个使用Object.assign的外部NPM依赖项。我想使用Babel,以确保与旧浏览器的兼容性,或者通过帮助程序转换Object.assign或者使用其他方法替换它,但它不起作用。

PS:我可以在代码顶部使用polyfill,我想避免这种情况,因为它是一个库(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"]
}

Gulp 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如果是在依赖中而不在主代码中?

1 个答案:

答案 0 :(得分:2)

查看babelify

的文档

您可以使用:

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