babel-preset-es2015和babel-preset-env之间的区别是什么?

时间:2017-03-13 16:02:50

标签: javascript webpack babeljs

我目前正在尝试了解babel配置,但被babel-preset-**弄糊涂了,babel中有许多预设,例如enves2015react和其他人,我明白需要babel-preset-es2015才能将es2015代码转换为以前的js代码,以便大多数/旧版浏览器能够理解它,babel-preset-env怎么办?

这些预设之间有什么区别?可以在不使用env的情况下使用es2015,反之亦然?当我们需要在项目构建系统中出现这两个预设时,会出现什么情况?

谢谢。

1 个答案:

答案 0 :(得分:47)

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

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

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