老项目使用axios的监听文件上传进度出现:request.upload.addEventListener in not a function

问题原因:

在公司老项目中,使用mockjs和axios,mockjs源码将XMLHTTPRequest修改了,导致监听文件上传进度的时候,出现 request.upload.addEventListener in not a function

网上给出了两种方案:

1.修改mockjs的nodemodules的包

虽然修改的nodemodules的包可以解决这个问题,但是公司老项目是跑的自动化。重新install之后,包又会变成原来的

2.卸载mockjs包

对于老项目不建议采用这种方式,因为老项目你不确定哪里依赖着mockjs

方案地址:https://blog.csdn.net/gjwgjw1111/article/details/127448624?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-127448624-blog-101774784.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-127448624-blog-101774784.235%5Ev38%5Epc_relevant_anti_t3&utm_relevant_index=1

如何解决

1.安装patch-package修改第三方模块

npm install patch-package -D
或
yarn add patch-package -D

2.修改mockjs的nodemodules包的源码

在这里插入图片描述

在这里插入图片描述

3.执行patch-package

npx patch-package mockjs

4.此时会在项目根目录生成一个patches文件

5.在package.json中的script加入

成一个patches文件

5.在package.json中的script加入
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐