我有一个使用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如果是在依赖中而不在主代码中?
答案 0 :(得分:2)
查看babelify
的文档您可以使用:
browserify().transform("babelify", {
global: true,
ignore: /\/node_modules\/(?!postscribe\/)/
});