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实现当网页加载完成后执行指定函数的方法
Mar 21 Javascript
javascript创建对象的几种模式介绍
May 06 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 Javascript
node.js 和HTML5开发本地桌面应用程序
Dec 13 Javascript
利用JavaScript如何查询某个值是否数组内
Jul 30 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
May 30 Javascript
详解微信小程序调起键盘性能优化
Jul 24 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
详解vue微信网页授权最终解决方案
Jun 16 Javascript
详解如何在Javascript和Sass之间共享变量
Nov 13 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
微信小程序实现点赞业务
Feb 10 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项目的方法
2006/10/09 PHP
Php部分常见问题总结
2006/10/09 PHP
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
深入浅出es6模板字符串
2017/08/26 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
Python工程师面试题 与Python Web相关
2016/01/14 Python
python搭建微信公众平台
2016/02/09 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
使用python制作一个解压缩软件
2019/11/13 Python
python创建学生成绩管理系统
2019/11/22 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
酒店秘书求职信范文
2014/02/17 职场文书
唐山大地震观后感
2015/06/05 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python