项目场景:

vue打正式包的时候 chunk文件混入es6代码 导致ie不兼容 报错


问题描述:

vue项目打包后,在谷歌浏览器、360浏览器极速模式都能正常运行,在ie以及360兼容模式下就报错
在这里插入图片描述

原因分析:

检查到只有报错的那个chunk文件才出现这个错误,于是对错误进行定位,查看报错文件代码发现,报错行以上的代码是es5,下面的代码是es6。那么问题就很明显了,ie是不兼容es6的。所以我们得找出为什么这个chunk文件包含es6代码,这个代码又来自哪里,经过重重排查,发现我的未编译成es5的代码来自于第三方依赖库flv.js。既然问题找到了,那么我们就开始来找解决方法,把这个第三方库也进行预编译。

解决方案:

找到官方文档中有这么一个配置
在这里插入图片描述
于是就开始操作代码,然后进行打包编译,发现可行(transpileDependencies: [/node_modules/\\[/\\]/])

module.exports = {
  publicPath: './',
  productionSourceMap: false,
  transpileDependencies: [/node_modules[/\\\\](flv.js|)[/\\\\]/],
  ...
  }

Logo

前往低代码交流专区

更多推荐