竟然与 package-lock.json 更新有关!部分用户 H5 页面白屏问题!

一.问题

1 场景

现象
接到部分用户反馈进入xxx H5 页面空白;
研发测日志里问题用户的线上页面URL地址可以正常访问,没有复现问题!!!

定位问题
监控平台和客户端日志报错:

SyntaxError: Unexpected token {

排查
经排查后,发现是更新了package-lock.json 文件导致

2 解决方案

  1. 修改 package.json 文件中的 browserslist 【 > 2% => >1% 】
    在这里插入图片描述

browserslist是一个用于指定项目所支持的目标浏览器范围的配置项,通常用于前端项目中。在package. json文件中的browserslist配置可以告诉各种工具(如Autoprefixer、 Babel等) 项目需要支持哪些浏览器的版本,以便这些工具能够相应地进行代码转译、前缀添加等操作
browserslist配置的值通常是一个字符串, 其中包含一系列浏览器标识符和版本范围。 例如,一个典型的 browserslist 配置可能 是这样的:

"browserslist": ["last 2 vers ions" ,"> 1%","IE 11"
]

在这个例子中,browserslist 配置指定项目需要支持最近两个版本的所有浏览器、全球使用量超过1%的浏览器以及IE 11浏览器。根据这些配置,相关工具会根据项目的需求来进行代码转译和前缀添加,以确保项目在指定的浏览器范围内能够正常运行。

  1. 备用方案:还原之前的 package-lock.json文件

二. 总结

1. 关于package-lock.json

当package-lock.json文件发生变动时,可能会导致以下情况:
安装的依赖版本发生变化:package-lock.json文件记录了确切的依赖版本,如果这些版本发生变化,可能会导致代码在不同的环境中表现不一致,甚至出现不兼容的情况。
依赖的依赖版本变化:package-lock.json文件不仅记录了直接依赖的版本,还包括了依赖的依赖的版本,如果这些依赖的依赖版本发生变化,也可能会影响代码的行为,导致不兼容问题。

2. 如何预防此类不兼容问题发生

不轻易更新 package-lock.json 文件:可以使用 npm ci 替代 npm i 安装依赖

npm install:通常用于在开发过程中安装新的依赖包,并且会更新 package-lock.json 文件。如果你需要添加新的依赖包,并且希望更新 package-lock.json 以确保依赖版本的一致性,可以使用这个命令。
npm ci:用于在生产环境或持续集成环境中进行依赖安装。它会根据 package-lock.json 文件来安装依赖,而不会更新 package-lock.json 文件,从而确保依赖版本的一致性。如果你需要在生产环境或持续集成环境中安装依赖,可以使用这个命令。
npm install --no-save:用于安装依赖但不更新 package.json 文件中的 dependencies 字段。这个命令通常用于安装临时的开发依赖或工具,而不希望将其添加到 package.json 文件中。如果你只是需要安装临时的开发依赖或工具,并且不希望更新 package.json 文件,可以使用这个命令。

在生产环境中,通常建议根据package-lock.json文件来安装依赖,而不是仅依赖package.json文件。虽然package.json文件中也包含了依赖的信息,但是package-lock.json文件更加确切地指定了依赖的版本和依赖树结构,从而可以确保在不同环境下安装的依赖版本一致。

3. 如何定位“部分用户出现、研发测没有复现”的问题

  1. 参考公司的监控平台
  2. 一定要尽早复现问题,不然很难定位问题!
  • 客户端打日志
  • 使用各真机、各浏览器版本进行复现;
    借助腾讯云真机等之类的工具: https://wetest.qq.com/n/console/default-cpluu8fbu5bkdchdn85g/testlab/remote/devices/

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

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

相关文章

百递云·API开放平台「智能地址解析API」助力地址录入标准化

地址信息的正确录入,是保证后续物流配送环节能够顺畅运行的必备前提,错误、不规范的收寄地址将会产生许多困扰甚至造成损失。 ✦地址信息通常包含国家、省、城市、街道、楼宇、门牌号等多个部分,较为复杂,填写时稍有疏忽就会出现…

数据结构:手撕代码——顺序表

目录 1.线性表 2.顺序表 2.1顺序表的概念 2.2动态顺序表实现 2.2-1 动态顺序表实现思路 2.2-2 动态顺序表的初始化 2.2-3动态顺序表的插入 检查空间 尾插 头插 中间插入 2.2-4 动态顺序表的删除 尾删 头删 中间删除 2.2. 5 动态顺序表查找与打印、销毁 查找 …

使用fvm切换flutter版本

切换flutter版本 下载fvm 1、dart pub global activate fvm dart下载fvm 2、warning中获取下载本地的地址 3、添加用户变量path: 下载地址 终端查看fvm版本 fvm --version 4、指定fvm文件缓存地址 fvm config --cache-path C:\src\fvm(自定义地址&…

使用Zed 实现测距

目录 1. 导入相关库 2. 相机初始化设置 3. 获取中心点深度数据 4. 计算中心点深度值 5. 完整代码 此代码基于官方代码基础上进行改写,主要是获取zed相机深度画面中心点的深度值,为yolo测距打基础。 Zed相机是由Stereolabs公司开发的一种先进的立体视觉相机。这种相机专…

LinkFinder使用记录

在Windows上使用linkfinder报出如下错误: 解决办法: 进入linkfinder.py中将如下代码注释掉即可~ print("URL to access output: file://%s" % os.path.abspath(args.output))

使用Leaflet库创建交互式地图:技术解析与实践

一:引言 在现代Web开发中,地图可视化已成为许多项目不可或缺的一部分。Leaflet是一个开源的JavaScript库,用于在Web页面上创建交互式地图。它简单易用、轻量级且高度可定制,使得开发者能够快速地创建出具有丰富功能的地图应用。本…

618有什么值得推荐?2024数码产品推荐,轻松拿捏选购!

随着618购物节即将来临,你是否已被琳琅满目的商品所吸引,难以抉择?团团特意为你筛选出一系列经过亲身试验的优质好物,旨在帮助你在这场购物盛宴中迅速锁定心仪之选。这些推荐不仅走在时尚的前沿,更能满足你日常生活的各…

java:spring使用【XXXPostProcessor】添加bean定义,修改bean定义、代理bean

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89433361 # 项目代码 【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-start…

GaussDB技术解读——GaussDB架构介绍(三)

目录 9 智能关键技术方案 智能关键技术一&#xff1a;自治运维系统 智能关键技术二&#xff1a;库内AI引擎 智能关键技术三&#xff1a;智能优化器 10 驱动接口关键技术方案 GaussDB架构介绍&#xff08;二&#xff09;从数据持久化存取层(DataNode)关键技术方案、全局事…

list容器的基本使用

目录 前言一&#xff0c;list的介绍二&#xff0c;list的基本使用2.1 list的构造2.2 list迭代器的使用2.3 list的头插&#xff0c;头删&#xff0c;尾插和尾删2.4 list的插入和删除2.5 list 的 resize/swap/clear 前言 list中的接口比较多&#xff0c;与string和vector类似&am…

全面解说Facebook代投菲律宾真金游戏pwa广告全流程

全面解说Facebook代投菲律宾真金游戏pwa广告全流程 随着数字营销的不断发展&#xff0c;社交媒体平台如Facebook已成为广告主们争相投放的热门渠道。对于希望拓展菲律宾市场的真金游戏企业来说&#xff0c;了解并掌握在Facebook上投放广告的具体流程显得尤为重要。本文将详细介…

SQL SERVER触发器记录指定的几笔资料更新记录

1.目的 为了记录数据库表中资料数据动态的变更&#xff0c;实时动态且方便调整记录的范围。 2.分析 需求:记录UPDATE 修改的记录 if exists(select 1 from inserted) and exists(select 1 from deleted) &#xff1a;修改if (exists (select 1 from inserted) and n…

[Nacos]No spring.config.import property has been defined

在学习 Spring Cloud Alibaba &#xff0c;Nacos组件&#xff0c;创建一个cloudalibaba-config-nacos-client&#xff0c;加载多配置集时遇到问题 配置了 bootstrap.yml 后启动项目报错&#xff1a; 是因为在springcloud 2020.0.2版本中把bootstrap的相关依赖从spring-cloud-s…

电脑文件msvcr120.dll丢失怎样修复?具体的msvcr120.dll修复方法分享

电脑文件msvcr120.dll丢失是一种比较常见的现象&#xff0c;只要是经常使用电脑的人&#xff0c;那么遇到msvcr120.dll丢失的次数就越多&#xff0c;今天主要来给大家聊一下msvcr120.dll丢失的各种解决方法。 一.电脑文件msvcr120.dll msvcr120.dl是由Microsoft提供的关键系统…

Qt飞机大战小游戏

Gitee地址 &#xff1a;plane-game: 基于Qt的飞机大战小游戏 GitHub地址&#xff1a; https://github.com/a-mo-xi-wei/plane-game

微信鸿蒙版本来了 我不允许你不会

前言: 各位同学大家好, 好久没有更新鸿蒙文章了 现在更新一个鸿蒙版本高仿微信版本 那么废话不多说 我们正式开始 作者:徐庆 团队:坚果派 公众号:“大前端之旅” 润开鸿生态技术专家,华为HDE,CSDN博客专家,CSDN超级个体,CSDN特邀嘉宾,InfoQ签约作者,OpenHarmony布…

2024牛客网高频精选Java面试八股文整理(附答案)

Java 面试 Java 作为编程语言中的 NO.1,选择入行做 IT 做编程开发的人&#xff0c;基本都把它作为首选语言,进大厂拿高薪也是大多数小伙伴们的梦想。以前 Java 岗位人才的空缺&#xff0c;而需求量又大&#xff0c;所以这种人才供不应求的现状&#xff0c;就是 Java 工程师的薪…

【CH32V305FBP6】USBD HS 描述符修改

文章目录 前言设备描述符配置描述符配置描述符CDC 描述符接口关联描述符接口描述符功能描述符端点描述符接口描述符端点描述符 HID 描述符接口描述符 练习&#xff1a;新增一个 HID 设备 前言 USB HS 复合设备&#xff0c;CDCHID 功能&#xff1a;串口、DAP、CAN-HID、RS485 …

健身小程序:智能化助力个人健身旅程

一、智能化功能的核心 健身小程序的智能化功能主要体现在以下几个方面&#xff1a; 智能健身计划推荐&#xff1a;小程序内置了先进的算法&#xff0c;能够根据用户的身体状况、健身目标和时间安排&#xff0c;智能推荐个性化的健身计划。这些计划不仅科学合理&#xff0c;而且…

零基础入门学用Arduino 第二部分(二)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…