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 相关文章推荐
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
img onload事件绑定各浏览器均可执行
Dec 19 Javascript
如何使用Jquery获取Form表单中被选中的radio值
Aug 09 Javascript
js中window.open()的所有参数详细解析
Jan 09 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 Javascript
分享ES6的7个实用技巧
Jan 18 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
Jun 19 Javascript
原生js实现分页效果
Sep 23 Javascript
JavaScript+HTML实现学生信息管理系统
Apr 20 Javascript
vue实现锚点定位功能
Jun 29 Vue.js
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/06/11 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
Javascript 面向对象 重载
2010/05/13 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
python3序列化与反序列化用法实例
2015/05/26 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
Python快速排序算法实例分析
2017/11/29 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
工作人员思想汇报
2014/01/09 职场文书
入党自我评价优缺点
2014/01/25 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
公证书格式
2015/01/23 职场文书
中学团支部工作总结
2015/08/13 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python
python保存图片的四个常用方法
2022/02/28 Python