Javascript babel-preset-es2015和babel-preset-env有什么区别?
我目前正试图了解babel配置,但被Javascript babel-preset-es2015和babel-preset-env有什么区别?,javascript,webpack,babeljs,Javascript,Webpack,Babeljs,我目前正试图了解babel配置,但被babel预置-***弄糊涂了,babel中有很多预置,比如env,es2015,react等,我知道需要babel-preset-es2015将es2015代码转换为以前的js代码,以便大多数/较旧的浏览器都能理解,那么babel-preset-env呢 这些预设之间有什么区别?是否可以在不使用es2015的情况下使用env,或者反之亦然?当我们需要这两个预设出现在我们的项目构建系统中时,会发生什么情况 谢谢。babel-preset-es20XX(15、1
babel预置-***
弄糊涂了,babel中有很多预置,比如env
,es2015
,react
等,我知道需要babel-preset-es2015
将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)所需的转换集。babel preset env
是否也将缩小过程从UglifyJS更改为babili?我有点被它弄糊涂了,事实并非如此。缩小的方式是分开的preset env
可能会使您的输出代码为ES6,而标准的Uglify无法处理ES6,因此如果您将env
与Uglify
一起使用,您应该使用Uglify
目标:巴贝尔自己建议现在就使用babel preset env
。