使用babel转换为es3(符合safari)

Noi*_*art 4 babel gulp

我是巴贝尔新手.

我这样设置:

.babelrc:

{
    "presets": ["es2015", "es2017"]
}
Run Code Online (Sandbox Code Playgroud)

gulpfile:

gulp.task('default', function() {
    return gulp.src(['src/**/*.js', '!src/**/3rd/*'])
        .pipe(babel())
        .pipe(gulp.dest('dist'));
});
Run Code Online (Sandbox Code Playgroud)

然而,这似乎是编译为es5,这在Safari中并不完全支持.

有没有办法设定目标?那么它可以编译成ES3吗?

fst*_*nis 7

不,Babel不支持转发到ES3.

你的选择是:

  1. 编译为ES5然后使用ES5垫片.

  2. 使用不同的转换器.Google Closure Compiler和TypeScript都支持ES6作为输入,ES3作为输出.

注意: Babel生成的"ES5"代码可能无法在所有浏览器中使用,因为它可能包含ES5中不存在的功能(有关详细信息,请参阅警告).换句话说,由于您的目标甚至是旧版浏览器,因此您还需要Babel polyfill以及ES5垫片.