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配置吧,怎麼說其他頁面也有可能需要引其他包,說不準就是那個打包就出問題了