关于javascript:babel-preset-es2015和babel-preset-env有什么区别?

Whats the difference between babel-preset-es2015 and babel-preset-env?

我目前正在尝试了解babel的配置,但对babel-preset-**感到困惑,babel中有很多预设,例如enves2015react等,我确实理解需要将es2015代码转换为以前的js代码,以便大多数/较旧的浏览器可以理解,babel-preset-env怎么办?

这些预设之间有什么区别?可以不使用es2015而使用env还是反之?什么情况下需要在项目构建系统中使用这两个预设?

谢谢。


babel-preset-es20XX(15、16、17)预设包括将特定年份添加的功能转换为与先前版本兼容的代码所需的转换。

babel-preset-env包括对规范中已包含的所有功能的转换,但仅根据提供给它的一组环境启用使这些功能正常工作所需的功能。如果您没有向env传递任何选项,则它基本上就像es2015, es2016, es2017一样工作。

babel-preset-react是转换React / Facebook相关语法扩展(例如Flowtype和React的JSX)所需的一组转换。