vue2.0的一次IE11兼容问题记录

时间:2024-04-03 20:19:23

vue2.0的一次IE11兼容问题记录

问题描述:
1.项目刚开始的时候IE查看没有什么问题。
2.随着项目的不断扩大,使用的第三方组件等工具方法不断增加。忽然的就发现,打包后的项目无法在IE11上正常查看了。而且最要命的就是客户的seo无法实现,必须要在ie上能打开。
下面就是解决的过程:
1.使用本地dev在ie上正常显示,build后的包到环境上页面无法打开,连路由都跳转不过去。
2.没办法,只能F12查看报错信息。坑爹的IE页面有问题,F12都打开的非常艰难,试了半天才能看到报错信息:
DOM7011: 此页上的代码禁用了反向和正向缓存
HTML1300:进行了导航
app.js 各种语法错误
3.网上查看了各种信息,项目之前就引入了babel-polyfill组件,通过网上和代码的实际情况分析,觉得还是ie无法兼容当前的js,所以重点分析了babel-loader这个东东,测试了很多网上的方法,最终能正常显示,又测试了下把一些认为无效的内容删除在测试,最终修改了两个文件的内容。
.babelrc文件修改为以下内容。
{
“presets”: [
[“env”, {
“useBuiltIns”: “entry”,
“targets”: {
“browsers”: ["> 1%", “last 2 versions”, “not ie <= 8”]
}
}],
“stage-2”
],
“plugins”: [“transform-vue-jsx”, “transform-runtime”],
“env”: {
“test”: {
“presets”: [“env”, “stage-2”],
“plugins”: [“transform-vue-jsx”, “transform-es2015-modules-commonjs”, “dynamic-import-node”]
}
}
}

webpack.base.conf.js:
vue2.0的一次IE11兼容问题记录
其中resolve(‘node_modules/element-ui/packages’),
resolve(‘node_modules/element-ui/src’), resolve(‘node_modules/element-ui/lib’), resolve(‘node_modules/vue-loader/lib’), resolve(‘node_modules/pdfjs-dist’)是这次问题添加的。由于报错中的js属于这些组件,所以都添加了进去,如果有别的报错,则继续添加。

总结:
Babel 是编译工具,把高版本语法编译成低版本语法,或者将文件按照自定义规则转换成js语法。
webpack 通过 babel-loader 使用 Babel 。
当前项目babel-loader版本,创建项目时自动创建的,没有进行过升级处理
vue2.0的一次IE11兼容问题记录