前言
在前端开发中,我们经常需要使用 Babel 来将 ES6+ 的代码转换成 ES5 的代码,以兼容不支持 ES6+ 的浏览器。而在 Babel 的配置中,我们通常会用到 babel-preset-env
这个预设来自动根据目标环境来确定需要的插件和 polyfill。但是,在 Babel 7.5 之后,官方宣布我们不再需要使用 babel-preset-env
了,那么这到底是怎么回事呢?
Babel 7.5 的更新
在 Babel 7.5 中,官方引入了一个新的功能,叫做 “auto” mode,它可以自动根据目标环境来确定需要的插件和 polyfill,而不需要手动配置。这个功能的实现原理是通过使用 browserslist 来确定目标环境,并自动选择需要的插件和 polyfill。
如何使用 auto mode
使用 auto mode 非常简单,只需要安装 @babel/preset-env
,然后在 .babelrc
或 babel.config.js
中配置即可。下面是一个示例:
-- -------------------- ---- ------- - ---------- - - -------------------- - ---------- ----- - --------- - --- --- ----- - - - -
上面的配置中,我们指定了目标环境为最近两个版本的浏览器、全球使用率超过 1% 的浏览器,以及不支持的浏览器。然后,Babel 会自动根据这个目标环境来选择需要的插件和 polyfill。
与传统配置的对比
为了更好地理解 auto mode 的优势,我们来看一下传统的配置方式。通常,我们会使用 babel-preset-env
来根据目标环境来确定需要的插件和 polyfill,如下所示:
-- -------------------- ---- ------- - ---------- - - ------ - ---------- - ----------- ------ - ---------- --- -- --- - - - - -
上面的配置中,我们指定了目标环境为最近两个版本的浏览器和 IE8 及以上版本的浏览器。然后,Babel 会根据这个目标环境来选择需要的插件和 polyfill。
可以看到,传统的配置方式需要手动指定目标环境,并且需要使用特定的预设来实现。而 auto mode 可以自动根据目标环境来确定需要的插件和 polyfill,省去了手动配置的步骤,更加方便和灵活。
总结
Babel 7.5 引入的 auto mode 可以自动根据目标环境来确定需要的插件和 polyfill,省去了手动配置的步骤,更加方便和灵活。我们只需要安装 @babel/preset-env
,然后在 .babelrc
或 babel.config.js
中配置即可。这个新功能的引入将会对前端开发产生积极的影响,让我们更加轻松地进行 ES6+ 的开发工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/664086bfd3423812e4ea69c5