react 使用npm构建 不支持ie问题的记录,ie报不支持contains

公司每次发版都是使用npm install 下载package.json中关联的最新的包,虽然在package.json中,所有的包的下载都是写死了版本号,但是每一个包内部其实也引用了其他的包,这些在包内引用包的版本就无法控制。

问题:

之前发版后,都可以支持IE浏览器预览,但是有一发版后就不支持了,ie在加载AntdesignPro框架的时候,进入渲染页面环境报错。

生产环境报:

本地环境报:

原因是:

ie报不支持contains,可是在打包完成后umi,js包括了这些代码。

分析:

1、代码没问题:对比了之前能ie运行的代码,发现业务逻辑代码并没有什么改变,而且使用之前的业务逻辑代码在容器中构建的时候,也是报相同的错。相同的代码,早些时候不报错,最近构建后报错,智能说明不是代码的问题,可能是npm版本里包不同版本引发的问题。(本地环境之前npm下载的包,构建后不报错,重新下载npm包报错)

2、npm引用依赖版本包有问题:

本地环境运行时,标注出来了是umi.js的170972行代码有问题,点击后可以定位到相关代码片段

 此处代码上方有代码的注释,再向上找发现这个包是rc-util中使用的一个方法,在npm中找到rc-util。这个依赖我没有在package.json中进行显示使用,肯定是其他依赖包依赖了他而导致的。

解决:

定位这个包,找到npm官网的GitHub地址,找到了代码的更新日志,发现果然在最新的时候进行了版本升级更新,加入了qiankun的相关代码

新的版本加入了新代码后,就无法支持ie浏览器,虽然已经向他们反馈了,但是现在还没有回应。

那就只能在自己的项目中进行版本回退了

在自己的package.json中,显式定义这个包的版本 

"rc-util": "5.23.0",   升级前版本

在npm构建的时候使用

Npm install 的时候,有依赖包报错问题

npm install  --legacy-peer-deps

本地环境构建后,就可以ie显示,没有他最新更新的代码了

生产环境中也可以通过

GitHub修改此bug,去掉显式引用包,可以正常使用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值