使用Polyfil转换代码·babel·而且最好逐步让用户转用更现代的浏览器
一、使用Polyfill和Babel转换代码
为了让IE浏览器能跑得通现代JavaScript代码,我们需要用Polyfill来填平功能差距,再通过Babel转换成旧版的代码。
我们要装一些东西:
npm install --save-dev @babel/polyfill npm install --save-dev babel-loader @babel/core
然后在项目根目录下的文件里加些配置:
// .babelrc { "presets": ["@babel/preset-env"] }
别忘了引入Polyfill:
import "core-js";
二、配置Vue CLI
Vue CLI自带的配置可能还不够,我们需要调整一下:
npm install --save-dev vue-loader
创建或编辑项目配置文件,通常是在 vue.config.js
里面加这些:
module.exports = { configureWebpack: { resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' // 如果没有这句可能会警告,这是为了支持IE } } }, chainWebpack: config => { config .module .rule('vue') .use('babel-loader') .loader('babel-loader') .tap(options => ({ ...options, presets: [['@babel/preset-env', { targets: 'IE >= 11' }]] })); } }
三、修复CSS兼容性问题
IE对CSS的支持有点差,所以要小心点:
用Autoprefixer来自动添加必要的CSS前缀:
npm install --save-dev autoprefixer
配置Autoprefixer:
postcss: { plugins: [ autoprefixer() ] }
编写CSS的时候,尽量用符合规范的代码,避开IE不支持或支持不好的特性。
四、处理第三方库的兼容性
有些库可能不支持IE,这时我们需要做一些特别处理:
- 更新第三方库版本,保证它们支持IE。
- 如果某库不支持,找找有没有兼容版本,或者自己添加Polyfill。
按照这些步骤和配置,你的Vue项目应该就能在IE浏览器上正常运行了。记得经常更新依赖和配置,并在IE浏览器中做测试。而且,最好逐步让用户转用更现代的浏览器。