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 相关文章推荐
javascript Ext JS 状态默认存储时间
Feb 15 Javascript
js中将URL中的参数提取出来作为对象的实现代码
Aug 16 Javascript
jquery实现弹出层完美居中效果
Mar 03 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
jQuery表单事件实例代码分享
Aug 18 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
Apr 18 Javascript
Vue关于数据绑定出错解决办法
May 15 Javascript
在react中使用vuex的示例代码
Jul 30 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
Oct 23 Javascript
bootstrap table实现合并单元格效果
Dec 24 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
Jul 15 Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 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查询附近的人及其距离的实现方法
2016/05/11 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
jquery一句话全选/取消全选
2011/03/01 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python fileinput模块使用实例
2015/06/03 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
最新茶叶店创业计划书
2014/01/14 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
出生公证委托书
2014/04/03 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
会计岗位职责
2015/02/03 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
Java实现给Word文件添加文字水印
2022/02/15 Java/Android