Vue项目在IE浏览器页面白屏且报错SCRIPT1010:缺少标识符

news2024/11/19 9:34:25

背景 :Vue2 项目在谷歌浏览器运行好好的,在 IE 浏览器打开就会出现各种的问题。。

控制台报错 :SCRIPT1010: 缺少标识符

文件:app.403ea2d4.js,行:1,列:180

问题 :

同伴 IE 浏览器项目打不开,页面白屏,而我自己本地却能打开,不过项目在测试环境的地址也是打不开的,也是加载不出来页面,控制台报错SCRIPT啥的。

然后百度,试了各种方法,包括调整 IE 浏览器设置的 Internet 选项内的各种配置项( 没用 ),因为我个人的本地没问题,所以开始以为该不会是她 IE 浏览器配置的问题,最后甚至还想过重新安装一遍 IE 浏览器呢,不过最后回过头来发现并不是浏览器的问题。( 也是因为我将我本地的地址发给她,是可以在 IE 浏览器打开,她的地址给我的话同样也打不开,我甚至猜测我俩就端口号不一样为啥就不行呢?跟端口号有啥关系,最后感觉应该还是我俩本地项目的配置项可能在哪个地方有出入了吧,因为我俩的代码是合并同步过了的,所以就很奇怪,一头雾水。。)

我们还尝试了将 VSCode 编辑器里的 settings 全局配置文件改了一下配置项:

"prettier.trailingComma": "none", // 用于去掉末尾的逗号

因为百度有的说是关于什么 JSON 最后一项末尾不能有逗号之类的,然后所有文件就又重新保存了一遍,最后改完发现并没有什么卵用。

然后没办法的办法就是求助他人的帮助了,开始问大佬们如何解决,

  IE 无非就是:兼容没做全

但是我本地项目 main.js 入口文件里面都引入了兼容性插件了啊

import "babel-polyfill"; // 解决IE兼容性问题
import "core-js/stable"; // 解决IE不兼容新的api
import "regenerator-runtime/runtime"; // 

 ( 有猜测是不是因为 babel-polyfill 和 core-js/stable 这两个兼容性插件起冲突了呢? 之后确实也是把 core-js/stable  删除了,没有用它 ,也可以的 。)

然后就是报错信息点进去想看一下具体哪个方法出问题了

文件:app.403ea2d4.js,行:1,列:180

结果显示的文件打包压缩过了,而且这个 app.js 是所有首次加载依赖的文件都会打进去,

所以根本看不出来报错有标注哪个文件,所以也就找不到哪个方法出了问题。

又尝试将 config.js 文件里面的一个配置调整一下再试试:

直接在 productionSourceMap:加一个判断 不是 dev 环境就 true

module.exports = {
  productionSourceMap: process.env.NODE_ENV === "development" ? false : true, // 取消 .map 文件的打包,加快打包速度
}

( 一开始以为这个配置项只是为了加快打包速度的,后来才知道还能够定位到问题所在,设置为 true 后就可以看源码了 。)

测试环境默认打包是 product 环境,配置的前后台环境还是测试环境地址即可,

然后打完测试包,部署一下放到测试环境。或者让项目经理构建一下。

在测试环境中运行一下,看一下控制台报错。

  再然后想着排查是不是因为最近下载了哪些插件导致的?

( 比如 是不是 Echarts 插件版本太高,考虑要不要降低一下版本 等等。。 )

因为项目是开发了挺长一段时间才想起来在 IE 浏览器上面看一下的,而且之前是可以在 IE 正常访问打开的。结果发现现在打不开了。。

其实吧,主要是遇到这种兼容性问题毫无头绪,根本没有解决思路,所以又请教了一位大神,给了一个思路,意思就是说,我们俩代码即然一样,为啥在浏览器上面就有的能打开,有的打不开呢?觉得我俩肯定是哪些配置方面还是有出入的,所以:

在本地重新新建一个项目文件,比如 test ,

然后拉取远程仓库的代码, git clone 远程仓库项目地址

进入到项目文件目录下 , npm install 下载项目所需的依赖包,

( 本项目 node-sass@1.14.1 依赖包下载失败,用原来下载好的 node-sass@1.14.1压缩包解压到项目 node_modules 下 )

npm run serve  启动一下项目看结果

 哎,神奇的是,我的 IE 浏览器页面打开也不行了,

控制台报错 :SCRIPT1002: 语法错误

文件:chunk-vendors.js,行:16476,列:46


百度到 :

项目组最近反馈 vue 最新脚手架搭建的项目不支持IE,提示sockjs错误,采用垫片也不好使

但我的项目里面两个都配置上还是不生效呢,应该只配置一个的话就好使了 :

transpileDependencies:['sockjs-client']

但后来,尝试过不配置也可以了。。


然后项目经理又帮我们找了一篇关于 “前端工程IE11兼容性改造” 的文章给我们阅读借鉴经验 :

文章内容比较多,只抽取其中对项目有用的部分来介绍:

1、package.json 内容 :

  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.19",
    "@vue/cli-plugin-router": "~4.5.19",
    "@vue/cli-plugin-vuex": "~4.5.19",
    "@vue/cli-service": "~4.5.19",
    "sockjs-client": "1.5.1"
  }

主要就是下载一个 sockjs-client 依赖包 :

  npm install  sockjs-client@1.5.1 -D  


IE 兼容性改造

1、.browserslistrc 文件修改为 :

> 1%
last 2 versions
ie 11

  将 not dead 替换为 ie11  

2、 .eslintrc.js 文件修改为 :

这里我直接将里面所有的代码都给注释掉了,因为报错 影响我项目启动

3、babel.config.js 修改为 :应该不是这个影响的,可自行尝试一番

// // 初始代码
// module.exports = {
// 	presets: ['@vue/cli-plugin-babel/preset'],
// };

// // 项目原配置(es6 )
// module.exports = {
// 	presets: ['@vue/app'],
// 	env: {
// 		development: {
// 			plugins: ['dynamic-import-nodes'], // 解决项目启动慢的问题
// 		},
// 	},
// };

// IE11兼容性配置
module.exports = {
	presets: [
		'@vue/app',
		{
			useBuiltIns: 'entry',
			corejs: 3,
			polyfills: ['es.promise', 'es.symbol'],
		},
	],
};

4、public/index.html 删除引入的组件

5、vue.config.js 修改为 :

实际也没进行啥修改,就是添加了一项配置 :

transpileDependencies: ["decimal.js", "sockjs-client", "crypto-js"]

但感觉是配置 "sockjs-client" 就可以,或者后来尝试不配置此项也可以。。

( 其中 ,transpileDependencies 内部是需要单独进行 IE 兼容处理的依赖。 ) 

6、src / main.js 入口文件添加 IE 兼容性设置 :

import "core-js/stable";

import "regenerator-runtime/runtime";


运行或部署

工程完成IE兼容改造后,重启项目看效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/726603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 中查找 IP 地址的方法

概要 在 Linux 系统中,经常需要查找 IP 地址以进行网络配置、故障排除或安全管理。无论是查找本地主机的 IP 地址还是查找其他设备的 IP 地址,本文将介绍三种简单的方法,帮助你在 Linux 中轻松找到所需的 IP 地址。 方法一:使用 i…

Greenplum数据库优化器——Join类型

join 类型语法支持 from语句允许JOIN表达式和表名列表,将joined_table从table_ref中分离出来,It may seem silly to separate joined_table from table_ref, but there is method in SQL’s madness: if you don’t do it this way you get reduce-redu…

【网络结构】——TinyViT 一种transformer的蒸馏方案

来自 Microsoft 摘要 TinyViT是一种新型的小型transformer,它们高效且可以在大规模数据集上进行预训练。TinyViT通过在预训练期间应用蒸馏来传输知识,将大型预训练模型的知识转移到小型模型中,同时使小型模型能够获得大量预训练数据的红利。…

hcip实验--RIP

实验实验要求 : 要求:R1-R2-R3-R4-R5 RIP 100运行版本2 R6-R7 RIP 200 运行版本1 1.使用合理IP地址规划网络,各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R4使用R2访问R1环回 4.减少路由条目数量&am…

AttributeError: ‘FreeTypeFont‘ object has no attribute ‘getsize‘

yolo训练时,yolo的训练项目报错,如下 w, h self.font.getsize(text) # text width, height AttributeError: ‘FreeTypeFont’ object has no attribute ‘getsize’ 说是字体没有getsize属性,实际看了一下,此属性存在&#xff0…

simulink 使能子模块 对应if else

Enabled Subsystem 使能子模块 这个值是对内部的全部变量↓ 对输出↓

web 页面布局:(一)align与表格布局

web 页面布局:(一)align与表格布局 古早时代页面布局 表格布局合并单元格表格布局的弃用 古早时代 之前,我们花费了一点时间,去了解了一下 html 的本质,那么,现在,我们就要尝试开始…

多元回归预测 | Matlab基于灰狼算法优化深度置信网络(GWO-DBN)的数据回归预测,matlab代码回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于灰狼算法优化深度置信网络(GWO-DBN)的数据回归预测,matlab代码回归预测,多变量输入模型,matlab代码回归预测,多变量输入模型,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质…

[Android JNI] --- JNI基础

1 JNI概念 什么是JNI JNI 全称 Java Native Interface,Java 本地化接口,可以通过 JNI 调用系统提供的 API。操作系统,无论是 Linux,Windows 还是 Mac OS,或者一些汇编语言写的底层硬件驱动都是 C/C 写的。Java和C/C不…

一款批量漏洞挖掘工具

介绍 QingScan一个批量漏洞挖掘工具,黏合各种好用的扫描器。 是一款聚合扫描器,本身不生产安全扫描功能,但会作为一个安全扫描工具的搬运工;当添加一个目标后,QingScan会自动调用各种扫描器对目标进行扫描&#xff0c…

一文读懂智能汽车滑板底盘

摘要: 所谓滑板式底盘,即将电池、电动传动系统、悬架、刹车等部件提前整合在底盘上,实现车身和底盘的分离,设计解耦。基于这类平台,车企可以大幅降低前期研发和测试成本,同时快速响应市场需求打造不同的车型。尤其是无…

系统架构设计师-软件工程(2)

一、需求工程 1、需求工程阶段划分 软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。 【需求工程主要活动的阶段划分】 2、需求获取 3、需求分析 (1)数据流图(DFD) 简称DFD,它从…

LabVIEW开发矿用泵液压头测试系

LabVIEW开发矿用泵液压头测试系 在矿井中,矿用泵是用于排放矿井水的关键设备。如果不正常运行,矿山的生产必然受到严重影响,工人的生命也受到严重威胁。确保矿用泵能够正常运行非常重要。由于其运行条件非常恶劣,矿用泵的故障率高…

网络故障排除之Traceroute命令详解

概要 遇到网络故障的时候,你一般会最先使用哪条命令进行排障? 除了Ping,还有Traceroute、Show、Telnet又或是Clear、Debug等等。 今天安排的,是Traceroute排障命令详解,给你分享3个经典排障案例哈。 一. Traceroute…

ChatGPT 最佳实践指南之:写出清晰的指示

Write clear instructions 写出清晰的指示 GPTs can’t read your mind. If outputs are too long, ask for brief replies. If outputs are too simple, ask for expert-level writing. If you dislike the format, demonstrate the format you’d like to see. The less GPTs…

如何使网站快速拥有登录注册功能

如何使网站快速拥有登录注册功能 一、产品介绍二、开始使用1、如何判断用户是否登录?2、如何让用户登录?举个例子: 3、登录成功后如何拿到用户数据?4、如何维护用户的登录态? 二、注意点 前端必备工具(免费图床、API、chatAI等)推荐网站LuckyCola: h…

机器学习——支持向量机(数学基础推导篇【未完】)

在一个周日下午,夏天的雨稀里哗啦地下着 我躺在床上,捧着ipad看支持向量机 睡了好几个觉…支持向量机太好睡了 拉格朗日乘数法太好睡了 几何函数太好睡了 在我看来,支持向量机是目前学下来,最难以理解的内容 希望日后不要太难…脑…

[计算机入门] Windows对话框

2.4 对话框 在图形用户界面中,对话框是一种特殊的窗口, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。之所以称之为对话框是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的…

C. Russian Roulette(构造)

传送门 题意 俄罗斯转盘,长度为n的环,有k个子弹,然后挨着对着脑袋打。 你是第一个人,你希望你死的概率最小,问你怎么去设置这个子弹的位置。 第二个人会一开始随机砖圈,使得每一个位置开始都是可能的。…

电脑技巧:怎么轻松地搞定Win11系统备份任务

目录 1、选择免费备份软件来自动备份系统 2、如何逐步配置定时系统备份任务? “我是一个电脑小白,不是很懂电脑的一些操作。我刚买了一台新电脑,它装的是Win11系统,我害怕它出现什么问题,听朋友说可以通过备份的方…