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 CSS修改学习第六章 拖拽
Feb 19 Javascript
JQuery实现动态表格点击按钮表格增加一行
Aug 24 Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 Javascript
javascript实现保留两位小数的多种方法
Dec 18 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
详解JS面向对象编程
Jan 24 Javascript
JavaScript操作class和style样式代码详解
Feb 13 Javascript
Node.js操作mysql数据库增删改查
Mar 30 Javascript
Bootstrap源码解读导航(6)
Dec 23 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
Jul 30 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
python操作MySQL数据库的方法分享
2012/05/29 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
技术经理的自我评价范文
2013/12/03 职场文书
营业员实习自我鉴定
2013/12/07 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
公司年会演讲稿范文
2014/01/11 职场文书
人事档案接收函
2014/01/12 职场文书
社区包粽子活动方案
2014/01/21 职场文书
消防器材管理制度
2014/01/28 职场文书
质量月活动策划方案
2014/03/10 职场文书
化妆品活动策划方案
2014/05/23 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS