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实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
Apr 20 Javascript
JavaScript对象创建及继承原理实例解剖
Feb 28 Javascript
jQuery JSON实现无刷新三级联动实例探讨
May 28 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 Javascript
在vue组件中使用axios的方法
Mar 16 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
VUE项目axios请求头更改Content-Type操作
Jul 24 Javascript
详解JavaScript作用域、作用域链和闭包的用法
Sep 03 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语法(5)
2006/10/09 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
js右键菜单效果代码
2007/07/21 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
javascript连续赋值问题
2015/07/08 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
python 发送json数据操作实例分析
2019/10/15 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
医学生自荐信范文
2013/12/03 职场文书
党员领导干部承诺书
2014/05/28 职场文书
欢迎横幅标语
2014/06/17 职场文书
2014年工程工作总结
2014/11/25 职场文书
党员个人年度总结
2015/02/14 职场文书
匿名信格式范文
2015/05/27 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
提档介绍信范文
2015/10/22 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python