2019-12-25
Webpack
0

目录

@babel/preset-env
@babel-polyfill
babel-plugin-transform-runtime
preset-env配置

在现代化的JavaScript开发中,我们通常使用一些高级语言特性来提高代码的可读性、可维护性和性能。但是,由于不同的浏览器对JavaScript的支持程度不同,这些高级特性可能无法在所有的浏览器上运行。这时候,一个优秀的转码工具就变得尤为重要了。Babel就是这样一款优秀的JavaScript转码工具,它可以将最新版本的JavaScript代码转换为向后兼容的代码,以便于在不同的浏览器和环境中运行。

@babel/preset-env

presets其实是多个plugin的集合, 你可以使用未来的语法,它会将你的语法转换为你目标浏览器支持的语法,譬如匿名函数,let等等

例如: "babel-preset-env" "babel-preset-stage-2"

image.png

@babel-polyfill

polyfill补充一些对象的实例方法、静态方法的支持,以及可以使用新的内置对象 会占用很大体积,把所用需要兼容低版本浏览器的内部方法重写。而且会污染全局变量

babel-plugin-transform-runtime

当你使用比较新的内置方法,比如Promise或者generator时,会自动引入这两个内置的方法,以此兼容低版本浏览器。不会污染全局变量。会比@babel-polyfill更智能。

preset-env配置

语法兼容

js
module.exports = { presets: [["@babel/preset-env"]] }

语法、方法兼容(建议使用,会按需加载)

额外依赖包(安装core-js@3无法生效)

shell
npm install --save-dev core-js@2
js
module.exports = { presets: [ ["@babel/preset-env", { useBuiltIns: "usage" }]] }

本文作者:BARM

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!