leiwuhen-67's blog leiwuhen-67's blog
首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)

我的公众号

首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)
  • Vue2

    • 项目国际化
    • element ui之图片预览
    • element ui之图片上传到阿里云oss上
    • element ui之表格拖拽排序
    • vue动态添加路由后刷新页面白屏问题
    • vue项目安装依赖报错
    • vue项目使用postcss-pxtorem来实现移动端适配
    • vue之低版本浏览器兼容
    • eslint报错汇总
  • Vue3

  • 《Vue》笔记
  • Vue2
心欲无痕
2023-01-11

vue之低版本浏览器兼容

最近遇到一个问题,使用 vue 脚手架打包后的项目在用户手机上打开页面是空白的。其机型是 android7.1。

最后在安卓模拟真机调试后,找到问题了,是因为打包后,有部分 es6 没有转成 es5,发现扩展运算符还在,代码不兼容,导致页面报错,显示空白。

解决办法就是在打包的时候将 es6 代码转换成 es5 代码。

这里我们需要使用 Babel 插件。

1、安装 @babel/polyfill

npm install @babel/polyfill -S
1

2、在入口文件 main.js 最顶部引入该插件

import "@babel/polyfill"
1

3、修改 babel.config.js 配置文件。

presets: [
  ["@vue/app", {
    polyfills: [
      "es6.promise",
      "es6.symbol",
      "es6.array.iterator",
      "es6.object.assign"
    ],
    useBuiltIns: "entry"
  }]
]
1
2
3
4
5
6
7
8
9
10
11

4、在 vue.config.js 配置文件中修改配置项 transpileDependencies。默认情况下 babel-loader 会忽略所有 node_modules 中的文件。你可以启用本选项,以避免构建后的代码中出现未转译的第三方依赖

transpileDependencies: [true]
1

至此,项目白屏报错的问题就可以解决了。

需要注意的是从 Babel 7.4.0 开始,不再推荐使用 @babel/polyfill 包,而是直接使用 core-js/stable 和 regenerator-runtime/runtime:

安装 core-js 和 regenerator-runtime

npm install --save core-js regenerator-runtime
1

在项目入口文件顶部引入

import "core-js/stable";
import "regenerator-runtime/runtime";
1
2
编辑 (opens new window)
上次更新: 7/1/2024, 4:56:33 PM
vue项目使用postcss-pxtorem来实现移动端适配
eslint报错汇总

← vue项目使用postcss-pxtorem来实现移动端适配 eslint报错汇总→

Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式