iview admin 是基於 iview 的一套後臺管理系統,界面清爽,功能比較完整,很適合快速上手。不過它未兼容IE(非Edge)9/10,而本該可以部分支持的。這裏提供一些解決方案。
一、const polyfill
本人是通過vue-cli
初始化工程的,實測發現,編譯打包時,/node_modules/iview/src
裏的兩處const變量爲被轉換爲var,而iview/dist/
裏面是正確轉換來的。
接着,全部照搬iview admin配置,仍然如此。
發現是webpack
配置問題,解決方案:
在webpack.base.conf.js
的test: /\.js$/
規則裏,新增一個include
項,即resolve('/node_modules/iview/src')
。
參考來源:http://blog.csdn.net/nongweiyilady/article/details/78893504
二、Promise polyfill
IE低版本原生不支持Promise,但是transform-runtime
插件,應該是能提供兼容的,結果沒有。
這也是webpack配置問題,沒有導出全局的Promise對象。解決方法:
在main.js
頭部添加一句window.Promise = Promise;
即可。
*注意:*原版是src/vendors/vendors.base.js
文件,我未完全照搬,下同。
參考來源:http://www.cnblogs.com/pheye/p/7659910.html
三、dataset polyfill
admin中直接用到了DOM的dataset屬性,也需要向後兼容,解決方法:
添加依賴element-dataset
,導入並初始化即可。
import ElementDataset from 'element-dataset';
ElementDataset();
四、babelrc配置參考
僅供參考,或許能解決某些IE下的奇怪兼容性問題。。。
{
"presets": [
["env", {
"modules": false
}],
"stage-0"
],
"plugins": ["transform-vue-jsx", "transform-runtime"]
}
棄坑
最近驗證發現,在IE 11及以下仍然會報錯,初步懷疑是webpack版本問題,只能使用2.7.1或更低版本。未降級驗證,好在目前沒這必要性,不折騰了。讓IE低版本早日退出歷史舞臺吧。