Using babel to transpile to es3 (safari compliant)

匿名 (未验证) 提交于 2019-12-03 01:26:01

问题:

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?

回答1:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!