美文网首页
前端如何处理第三方库兼容性问题?

前端如何处理第三方库兼容性问题?

作者: 打杂coder | 来源:发表于2022-07-17 09:50 被阅读0次

我们在开发过程中会使用一些第三方类库,类似Element UI、GSAP等等
部分第三方类库打包输出的文件由于使用了某些语法在低版本浏览器并不兼容,会导致报错,出现页面白屏的问题

案例

如最近用户在使用Chrome 49版本访问我们的系统时,页面直接白屏,从而进行排查,错误原因如下

控制台报错截图

通过控制台错误,可以定位到是由于Chrome 49版本不支持 Destructuring assignment: Rest in objects 语法导致报错,后续的JS无法继续执行,自然就白屏了。通过Can I use可以看到Chrome从60版本才开始支持该语法

image.png
这种情况下,我们首先让用户升级浏览器版本,后续再定位原因进行修复

原因

继续找到对应的报错行,发现是由于某个三方类库使用了该语法导致,在编译过程中,一般不会处理node_modules下的文件,因为这样做的话会比较消耗性能

解决方案

在编译过程中,使用Babel对该第三方类库进行编译,vue-cli提供了 transpileDependencies来指定需要编译的第三方类库


image.png

加上后,页面能够正常访问,但会出现另外一个报错

export default was not found

推断是编译后,类库输出的模块格式为commonjs,导致使用import导入报错
因此考虑放弃这种方式,通过添加新的module.rules来指定编译的模块和babel选项来处理

config.module
  .rule('compile')
    .test(/\.js$/)
    .include
      .add('node_modules/xxx'
      .end()
    .use('babel')
      .loader('babel-loader')
      .options({
        presets: [
          ['@babel/preset-env', { modules: 'umd' }]
        ]
      });

注意modules设置为umd,否则会出现上面export default was not found的报错

相关文章

  • 减少浏览器兼容性问题

    做为一个前端工程师,不少时间都在处理浏览器兼容性问题。本文对如何减少浏览器兼容性问题的方法做了些总结。 确定运行环...

  • 前端如何处理第三方库兼容性问题?

    我们在开发过程中会使用一些第三方类库,类似Element UI、GSAP等等部分第三方类库打包输出的文件由于使用了...

  • 七牛4

    采集 处理:iOS 端比较知名的是 GPUImage 库 编码:1. 处理硬件兼容性问题。2. 在高 fps、低 ...

  • 从数据库连接的DatabaseMetaData中获取表结构信息

    前言 我们在开发过程中,有时需要读取表结构信息。但是如何处理不同数据库的兼容性问题呐?我们可以从数据库连接的元数据...

  • androidX迁移问题记录

    本文记录了项目,从support库,迁移到了最新的androidx库,迁移后一些兼容性问题处理。 迁移过程很顺利,...

  • 【前端】Vue.js 基础篇(上)

    前言 前端开发发展历程,目的都是为了提高开发效率: 原生JS Jquery之类的类库(解决不同浏览器兼容性问题) ...

  • JavaScript概述-第1章

    目录 初始JavaScript 学会使用编辑工具 如何引入脚本代码 常用语句 常见浏览器兼容性问题 了解前端开发技...

  • Ajax Axios

    关于Ajax兼容性问题 前端原生Ajax(get方式),后端使用node.js 前后端代码: 前端原生Ajax(p...

  • ie11 解决vue项目兼容性问题

    最近项目尾声,需要做一些兼容性问题处理。其中最重要的自然是ie浏览器的兼容性问题了,于是便开始了网上查找兼容ie1...

  • 浏览器能力检测

    浏览器的兼容问题是前端开发避不开的一个问题,我们在处理浏览器兼容问题时,可以采取第三方插件来做兼容,或者是浏览器能...

网友评论

      本文标题:前端如何处理第三方库兼容性问题?

      本文链接:https://www.haomeiwen.com/subject/zqvrirtx.html