-
第一步:安裝babel-ployfill (已安裝請跳過此步驟)
yarn add babel-ployfill
-
修改webpack打包配置文件:webpack.bash.conf.js
// 引入babel-ployfill var babelPloyfill = require('babel-ployfill') // ... // 修改entry字段 entry: { // app: './src/main.js' app: ["babel-polyfill", "./src/main.js"] },
-
重新運行,v-loading等問題完美解決, 原因可能是v-loading是調用的ES6的Object的setter和getter方法來實現的,babel-ployfill報錯,未能將ES6的方法完全轉換為IE9支持的ES5方法
IE9樣式錯亂
- 可能的原因1,element-ui 中使用了 display: flex; 樣式,IE9不支持次樣式,解決方法為,排查下各組件,避免使用帶 display: flex; 的組件
-
可能的原因2,IE9瀏覽器過於老舊,單文件最大行數超過一定限制將不再讀取后邊的內容,因此可以嘗試分割css文件和打包的js文件
- 分割js文件,最好的方法是采用vue的路由懶加載,這樣打包時,vue-loader會把每個路由對應的js文件打包在一起。同時注意組件的合理划分,避免單組件體積過大,並提高組件的復用性
- 分割css文件,通過
yarn add css-split-webpack-plugin -D
安裝css-split-webpack-plugin
包來分割組件,修改webpack.prod.conf.js文件
// 引入依賴 var CSSSplitWebpackPlugin = require('css-split-webpack-plugin').default // 在css打包插件后面新增css分割插件 new ExtractTextPlugin({ filename: utils.assetsPath('css/[name].[contenthash].css') }), // 新增的css分割插件 new CSSSplitWebpackPlugin({ size: 4000, filename: utils.assetsPath('css/[name]-[part].[ext]') }),