我目前正在尝试了解babel配置,但被babel-preset-**
弄糊涂了,babel中有许多预设,例如env
,es2015
,react
和其他人,我明白需要babel-preset-es2015
才能将es2015代码转换为以前的js代码,以便大多数/旧版浏览器能够理解它,babel-preset-env
怎么办?
这些预设之间有什么区别?可以在不使用env
的情况下使用es2015
,反之亦然?当我们需要在项目构建系统中出现这两个预设时,会出现什么情况?
谢谢。
答案 0 :(得分:47)
babel-preset-es20XX
(15,16,17)预设包括将特定年份添加的功能转换为与先前版本兼容的代码所需的转换。
babel-preset-env
包含已在规范中定位的所有功能的转换,但仅启用根据您提供给它的一组环境使功能正常工作所需的转换。如果您没有向env
传递任何选项,那么它基本上就像es2015, es2016, es2017
一样。
babel-preset-react
是转换React / Facebook相关语法扩展(如Flowtype和React的JSX)所需的转换集。