在现代化的JavaScript开发中,我们通常使用一些高级语言特性来提高代码的可读性、可维护性和性能。但是,由于不同的浏览器对JavaScript的支持程度不同,这些高级特性可能无法在所有的浏览器上运行。这时候,一个优秀的转码工具就变得尤为重要了。Babel就是这样一款优秀的JavaScript转码工具,它可以将最新版本的JavaScript代码转换为向后兼容的代码,以便于在不同的浏览器和环境中运行。
presets其实是多个plugin的集合, 你可以使用未来的语法,它会将你的语法转换为你目标浏览器支持的语法,譬如匿名函数,let等等
例如: "babel-preset-env" "babel-preset-stage-2"
polyfill补充一些对象的实例方法、静态方法的支持,以及可以使用新的内置对象 会占用很大体积,把所用需要兼容低版本浏览器的内部方法重写。而且会污染全局变量
当你使用比较新的内置方法,比如Promise或者generator时,会自动引入这两个内置的方法,以此兼容低版本浏览器。不会污染全局变量。会比@babel-polyfill更智能。
语法兼容
jsmodule.exports = {
presets: [["@babel/preset-env"]]
}
语法、方法兼容(建议使用,会按需加载)
额外依赖包(安装core-js@3无法生效)
shellnpm install --save-dev core-js@2
jsmodule.exports = {
presets: [
["@babel/preset-env", {
useBuiltIns: "usage"
}]]
}
本文作者:BARM
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!