iview-admin IE兼容方案(已弃坑)

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.jstest: /\.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低版本早日退出历史舞台吧。

猜你喜欢

转载自my.oschina.net/u/2324376/blog/1612225