VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决


Posted in Javascript onSeptember 27, 2020

问题现象

项目使用vue/cli3脚手架搭建的前端项目,vue版本为2.6.10。

browserslist的配置如下:

[ "> 1%", "last 2 versions"]

但开发环境的IE11打开显示白屏,F12打开显示:

VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决

分析过程

5306行显示 "./node_modules/_debug@4.1.1@debug/src/browser.js"这个路径报错,由于eval()包含的代码中有ES6的语法,IE不支持,查了网上很多资料都说使用babel-polyfill来解决。

现象一:IE不支持ES6语法

  • Vuex requires a Promise polyfill in this browser
  • "“Promise”未定义"

以上现象为IE不支持Promise,即不支持ES6语法。出现IE白屏和报SCRIPT1002错误的大都是此原因。当前处理起来也比较简单,网上大部份资源都可以找到解决方案,就是使用babel-polyfill。

首先安装babel-polyfill

npm install --save-dev babel-polyfill

然后在babel.config.js修改presets,内容如下:

// presets: [["@vue/app", {useBuiltIns: "entry",}]],// 此为vue/cli3
presets: [["@vue/cli-plugin-babel/preset", {useBuiltIns: "entry",}]],// 此为vue/cli4

解决方法一

main.js的第一行引入:

import 'babel-polyfill';

解决方法二:
vue cli官方推荐使用,前提是package.json安装了core-js:

import 'core-js/stable';import 'regenerator-runtime/runtime';

解决方法三:
在vue.config.js里添加如下代码:

configureWebpack: config => { config.entry.app = ["babel-polyfill", "./src/main.js"]; },

现象二:第三方插件引入导致

由于项目使用了长连接库socket.io-client和vue-socket.io-extended,在main.js是中使用方法是:

import VueSocketIOExt from 'vue-socket.io-extended';
import io from 'socket.io-client';
const socket = io(process.env.VUE_APP_IO_URL);
Vue.use(VueSocketIOExt, socket);

我把这四行代码注释掉之后神奇的IE不白屏了,但业务需要IE11是不能放弃长连接的,经过尝试发现是socket.io-client这个插件在使用import引入时导致的问题。

解决方法一:

1、将main.js调整为:

import VueSocketIOExt from 'vue-socket.io-extended';
const socket = io(process.env.VUE_APP_IO_URL);
Vue.use(VueSocketIOExt, socket);

2、socket.io-client改为在public/index.html文件head中引入:

<script src="https://cdn.bootcdn.net/ajax/libs/socket.io/2.3.0/socket.io.slim.js"></script>

解决方法二:

保留main.js对第三方插件的引入不变,只需要在vue.config.js的transpileDependencies添加要显示依赖的插件即可:

transpileDependencies:['socket.io-client'],
// transpileDependencies:['*'],

transpileDependencies的作用是:默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。

现象三:本地环境正常,但生产环境仍旧白屏

发现引入一个多语言文件时,JSON没有使用合适的逗号导致,如下:

VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决

当我我第8行的逗号去掉后,奇迹般正常了。
另外,如果前端工程引入的文件不在工程的根目录下,也会出现这种情况。

到此这篇关于VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决的文章就介绍到这了,更多相关VUE IE11白屏报错内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
采用call方式实现js继承
May 20 Javascript
使用GruntJS构建Web程序之安装篇
Jun 04 Javascript
JavaScript运动减速效果实例分析
Aug 04 Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 Javascript
JavaScript中的E-mail 地址格式验证
Mar 28 Javascript
webpack4.x打包过程详解
Jul 18 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
Sep 04 Javascript
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
Apr 13 Javascript
react-intl实现React国际化多语言的方法
Sep 27 #Javascript
Javascript异步流程控制之串行执行详解
Sep 27 #Javascript
vue+elementUI 实现内容区域高度自适应的示例
Sep 26 #Javascript
Openlayers实现测量功能
Sep 25 #Javascript
openlayers4.6.5实现距离量测和面积量测
Sep 25 #Javascript
JQuery Ajax如何实现注册检测用户名
Sep 25 #jQuery
Openlayers测量距离与面积的实现方法
Sep 25 #Javascript
You might like
删除数组元素实用的PHP数组函数
2008/08/18 PHP
PHP小教程之实现链表
2014/06/09 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
PyQT实现多窗口切换
2018/04/20 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
Django使用rest_framework写出API
2020/05/21 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
薇姿法国官网:Vichy法国
2021/01/28 全球购物
护理学院专科毕业生求职信
2014/06/28 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
告知书格式
2015/07/01 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
教师网络培训心得体会
2016/01/09 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers