vue-cli H5 在app(ios9/android4) 不兼容白屏,页面空白

ios9/android4 不支持es6写法,包括一些低版本安卓机,超级坑!!!

最先是要配babel-polyfill

import babel-polyfill
// 在module.exports里
entry: {
  // app: './src/main.js'
  app: ["babel-polyfill", "./src/main.js"]
}

单独配里这里是不好用的,需要在module.exports里module里加上这段

{
  test: /\.js$/,
  exclude: /node_modules/,
  loader: "babel-loader"
}

仍然不好使的,需要给某些目录加编译,如下include,看resolve在那个目录下,有的需要path.

{
  test: /\.js$/,
  exclude: /node_modules/,
  loader: "babel-loader”,
  include: [
    path.resolve('src'),
    path.resolve('test'),
    path.resolve('node_modules/webpack-dev-server/client')
  ]
}
仍然不好使的,那就是因为web-view问题,会导致加载H5需要适配ie
const Home = () => import("../views/Home");

原因是在加载路由时的写法用尖头函数(如上),会走到Promise.all(),但在ie浏览器上会报错Promise 未定义
所以需要在最开始加载路由前面定义Promise,在main.js里第一句话加载Promise,两种中写一个便可

import Promise from 'es6-promise';
window.Promise=Promise;

2020.3.26
之后还发现了一种问题是关于swiper的白页,同样还是在app里

import Swiper from "swiper";

这样引入是有问题的因为webpack打包会连着这样引入的包在打一遍,导致打包错误,显示白页
所以可以修改webpack打包配置,过滤掉/node-module/
也可以想官网上引入cdn
但是对于像vue/react这种单页面入口建议还是修改webpack配置吧,怎么说其他页面也有可能需要引其他包,说不准就是那个打包就出问题了

你可能感兴趣的:(vue,route,webView)