0


webpack处理js兼容性问题之core-js

过去我们使用

babel 对 js 

代码进行了兼容性处理,其中使用

@babel/preset-env

智能预设来处理兼容性问题。

它能将

ES6

的一些语法进行编译转换,比如箭头函数、点点点运算符等。但是如果是

async

函数、

promise 

对象、数组的一些方法

(includes)

等,它没办法处理。

所以此时我们

js

代码仍然存在兼容性问题,一旦遇到低版本浏览器会直接报错。所以我们想要将 js 兼容性问题彻底解决

一、什么是core-js

core-js

是一个

JavaScript

库,提供了许多

ES5、ES6

和其他新特性的

polyfills

,以确保这些新特性在旧浏览器上的兼容性。

  • polyfill翻译过来叫做垫片/补丁。就是用社区上提供的一段代码,让我们在不兼容某些新特性的浏览器上,使用该新特性。

它的主要用途是为了确保

Web

应用程序在所有浏览器中都能运行,并提高代码的可移植性和可维护性。

举个例子,

ES6

引入了一个新的数据结构

Map

,但是在某些旧版本的浏览器中可能不支持

Map

。在这种情况下,使用

core-js

库的

Map polyfill

可以确保

Map

在旧浏览器上正常工作。同样,

core-js

还提供了

Promise、Set、Symbol

等其他转换和扩展功能

二、配置core-js

  1. 下载

npm i core-js

  1. 配置bable.config.js,实现自动按需加载
  • babel.config.js
module.exports ={// 智能预设:能够编译ES6语法presets:[["@babel/preset-env",// 按需加载core-js的polyfill{useBuiltIns:"usage",corejs:{version:"3",proposals:true}},],],};
  1. 打包

npm run build


本文转载自: https://blog.csdn.net/jieyucx/article/details/131271879
版权归原作者 jieyucx 所有, 如有侵权,请联系我们删除。

“webpack处理js兼容性问题之core-js”的评论:

还没有评论