前言
解决VUE2项目在IE9+白屏报错语法错误的解决
由于公司项目要求PC端项目需要兼容IE9+浏览器,查阅了网上资料,经过数天的研究,终于成功解决这个让我头疼的问题!
通过实践后得出以下解决方案
一、创建项目
首先通过指令检查vue脚手架版本(这里一定要注意,本人就是使用过高的脚手架版本导致一直找不到问题,困扰数天!)
1.打开命令行工具(如终端或命令提示符)
vue -V
这里本人亲测3.0.5和3.12.0可以。应该3的版本都可以。
如果当前脚手架版本高于3的话需要降级处理(如vue脚手架版本就是3版本的跳过以下操作)
2.卸载vue
npm uninstall -g @vue/cli
3.卸载完成后执行命令确认是否卸载成功
vue -V
4.如果成功了的话执行清除 npm 缓存,有时候 npm 缓存可能会导致下载问题。可以尝试清除 npm 缓存,然后再次尝试安装 Vue 脚手架。
npm cache clean --force
5.运行以下命令重新安装 Vue CLI脚手架(版本3)
可以自己安装其他Vue CLI3相关版本。以下命令是安装3.0.5版本
npm install -g @vue/cli@3.0.5
6.安装成功后就开始自行创建项目(此处省略)
二、解决方法
1.运行项目到IE9+
这时竟然发现白屏 打开F12 发现提示语法错误
查明报错原因是: IE不支持ES6语法
打开终端
npm install --save-dev babel-polyfill
2.在main.js的第一行引入:
/*记住一定是首行代码*/
import 'babel-polyfill'
3.在babel.config.js修改presets,内容如下:
presets: [['@vue/app', {
useBuiltIns: 'entry',}]],
然后重新运行项目
4.还有一种情况是在ie中打开报错显示的sockjs-client错误
/***/ "./node_modules/sockjs-client/dist/sockjs.js":
/*!***************************************************!*\
!*** ./node_modules/sockjs-client/dist/sockjs.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
解决方案
降低sockjs-client的版本,他依赖描述在package-lock.json在里面,如果有这种情况出现,你的版本可能在我下方给出这个版本之上
npm i sockjs-client@1.5.1 -D
更新版本完成后在,重新编译项目
即可解决
三、解决引入自定义字体的解决方案(根据项目要求修改)
使用@font-face引入自定义特殊字体,在IE9环境下报错“@font-face 未能完成 OpenType 嵌入权限检查。权限必须是可安装的。”错误。
查明报错原因是: IE9不支持字体文件类型
解决方案:转换字体为WOFF格式
推荐网址:字体转换
在需要的页面引入该字体文件后,就可以正常显示咱们自定义的字体了
@font-face{
font-family:HarmonyOS_Sans_SC_Bold;
src:url('./assets/fonts/HarmonyOS_Sans_SC_Bold.woff');
}
总结:
以上就是今天要讲的内容,希望可以帮到更多人解决IE兼容问题。本人在IE坑里好长时间才得到解决方案,希望这篇博客可以帮到你!