transform-object-assign
とarray-includes
のプラグインを追加して、IE11のサポートをつなぎ合わせてきましたが、for of
ループを使用するとシンボルエラーが発生します。一度に1つずつ取り組むのではなく、下のビルドにbabel polyfillを組み込んで、将来的にそれを証明することは可能ですか?
私はいくつかの関連する質問を読みましたが、以下のgulpビルドにbabel-polyfillをどのように適合させるかについてはまだ明確ではありません:
return gulp.src(input) // Grab the input files
.pipe($.babel({
presets: ['es2015'], // transform ES6 to ES5 with Babel
plugins: ['transform-object-assign','array-includes']
}))
.pipe($.concat(outputFile))
.pipe($.uglify({
compress: {
drop_debugger: true
}
}))
.pipe(gulp.dest(paths.output)) // Output file destination
.pipe($.connect.reload());
}
編集
このnpmパッケージ「babel-polyfill」に戻ったときに、babel-polyfillとIEの問題に気づきました:「6.5.0」すべてが正常に機能し始めました
/編集
Browserifyを使用していますか?また、babel-polyfill
とプラグイン['transform-es2015-classes', { loose: true }]]
が必要です。
IE babel6との互換性のための私のgulpタスクはここにあります:
gulp.task('compile', () => {
browserify('./js/script.js', { debug: true })
.add(require.resolve('babel-polyfill'))
.transform(babelify.configure({presets: ['es2015'], plugins:['transform-es2015-classes', { loose: true }]]}))
.bundle()
.on('error', util.log.bind(util, 'Browserify Error'))
.pipe(source('script.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify({ mangle: false }))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./build'));
});