Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using babel to transpile to es3 (safari compliant)

Tags:

gulp

babeljs

I am new to babel.

I set it up like this:

.babelrc:

{
    "presets": ["es2015", "es2017"]
}

gulpfile:

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

However this seems to be compiling to es5 which is not fully supported in Safari.

Is there a way to set target? So it can compile to ES3?

like image 813
Noitidart Avatar asked Oct 23 '16 17:10

Noitidart


1 Answers

No, Babel does not support transpiling to ES3.

Your options are:

  1. Compile to ES5 and then use ES5 shim.

  2. Use a different transpiler. Google Closure Compiler and TypeScript both support ES6 as input and ES3 as output.

Note: The "ES5" code that Babel produces may not work in all browsers, as it may include features not present in ES5 (see caveats for more info). In other words, since you're targeting even older browsers, you'll also need Babel polyfill as well as ES5 shim.

like image 91
fstanis Avatar answered Oct 28 '22 05:10

fstanis