Whats the difference between babel-preset-es2015 and babel-preset-env?
我目前正在尝试了解babel的配置,但对babel-preset-**感到困惑,babel中有很多预设,例如env,es2015,react等,我确实理解需要将es2015代码转换为以前的js代码,以便大多数/较旧的浏览器可以理解,babel-preset-env怎么办?
这些预设之间有什么区别?可以不使用es2015而使用env还是反之?什么情况下需要在项目构建系统中使用这两个预设?
谢谢。
- babel自己建议立即使用babel-preset-env。
babel-preset-es20XX(15、16、17)预设包括将特定年份添加的功能转换为与先前版本兼容的代码所需的转换。
babel-preset-env包括对规范中已包含的所有功能的转换,但仅根据提供给它的一组环境启用使这些功能正常工作所需的功能。如果您没有向env传递任何选项,则它基本上就像es2015, es2016, es2017一样工作。
babel-preset-react是转换React / Facebook相关语法扩展(例如Flowtype和React的JSX)所需的一组转换。
- babel-preset-env是否还将缩小过程从UglifyJS更改为babili?我对此有些困惑。
-
它不是。缩小的方式是分开的。 preset-env可能会使您的输出代码为ES6,而标准的Uglify无法处理ES6,因此如果将env与uglify一起使用,则应使用uglify目标:github.com/babel/babel-preset-env#目标化