@antv/g6在ie11报语法错误,兼容处理

错误分析:

上图清晰明了指出@antv/g6在es6转es5的时候没全部转换完,ie不识别es6代码,所以要添加一个babel-profill。
项目中引入babel-polyfill,安装方法可以自行百度,在这里我直接上命令:

npm i --save babel-polyfill

第一步:引入babel-polyfill

引入babel-polyfill的方式无非有以下几种
1.在main.js的顶部直接使用 import ‘babel-polyfill’
2.在vue.config.js中,直接在chainWebpack内添加以下代码,只需要引入一处即可

chainWebpack: config => {
    config.entry('main').add('babel-polyfill')
    config.entry.app = ['babel-polyfill', './src/main.js']
  }

第二步:在babel.config.js中设置entry

module.exports = {
  //让G6支持IE  https://g6.antv.vision/zh/docs/manual/FAQ/supportIE 
  sourceType: 'unambiguous',
  presets: ['@vue/app'],//此处和官网不一样,官网为['@vue/cli-plugin-babel/preset']
}

第三步:将@antv/g6依赖包添加transpileDependencies

Vue cli3以上版本使用core-js基本上解决了大部分的IE兼容问题,但不少第三方库(node_modules中)将es6语句转换成es5时做得不彻底,无形中会引入新的IE兼容问题。一般的webpack cli工程为了编译得快,默认情况下babel-loader会忽略所有node_modules中的文件。如果想要通过Babel显式转译一个依赖,可以在transpileDependencies选项中列出来,然后在使用工程中再转换。

transpileDependencies: ["@antv/g", "@antv/g6"]

注意:3.2.10以下版本的@antv/g跑这个示例都必须设置"@antv/g"依赖项。3.2.10~3.8.5版本设置"@antv/g6"依赖项,注意@antv/g6 4.0.4以上版本不能兼容IE

最后提一句:珍爱生命,远离IE!

你可能感兴趣的:(webpack,前端,vue.js,前端)