解决vue在ios低系统白屏

环境:vue2,vue-cli3,ios 10.2系统
用到的插件:@babel/cli,@babel/core,@babel/preset-env,@babel/runtime ,@babel/plugin-transform-runtime,@babel/polyfill,es6-promise

安装:

// npm一次性安装多个包,包名之间用空格隔开
npm install --save @babel/runtime
npm install --save-dev @babel/cli @babel/core @babel/preset-env @babel/plugin-transform-runtime
npm install --save @babel/polyfill
npm install --save es6-promise

配置文件:
Babel的配置文件是Babel执行时默认会在当前目录寻找的文件,主要有.babelrc,.babelrc.js,babel.config.js和package.json。它们的配置项都是相同,作用也是一样的,只需要选择其中一种。这里我们选择新建一个babel.config.js文件,位置是与package.json同级。

// babel.config.js
module.exports = {
  plugins:[
    '@babel/plugin-transform-runtime',
  ],
  presets: [
    [
      "@babel/preset-env",
      {
        "useBuiltIns": "usage",
      }
    ],
    '@vue/app'
  ]
  
}

main.js文件里的设置,加文件开头如下代码,import "babel-polyfill"必须在第一行,确保下面的所有引入都能被polyfill发现

import "babel-polyfill"
import Es6Promise from 'es6-promise';
Es6Promise.polyfill();

vue.config.js文件中module.exports内添加如下代码

  chainWebpack(config) {
        // 在chainWebpack中添加下面的代码
        config.entry('main').add('babel-polyfill') // main是入口js文件
        config.entry.app = ['babel-polyfill', './src/main.js']
    },

完成以上就可以解决白屏问题,问题的根源是低版本系统对js新语法不识别。

备注:
参考:https://zhuanlan.zhihu.com/p/393122285
依赖包简介
@babel/cli,@babel/core是转码工具,@babel/preset-env这个npm包提供了ES6转换ES5的语法转换规则。
@babel/runtime ,@babel/plugin-transform-runtime 转换代码时候,注入函数声明,以便语法转换后使用。
@babel/polyfill 垫片,polyfill广义上讲是为环境提供不支持的特性的一类文件或库,既有Babel官方的库,也
有第三方的。babel-polyfill指的是Babel官方的polyfil。
es6-promise 浏览器兼容补丁

你可能感兴趣的:(解决vue在ios低系统白屏)