关于package.json与lock文件依赖版本的一些问题

问题的出现

有几次项目部署完毕在线上运行时,测试人员发现某些组件的效果出现异常,比如某些在弹窗modal内的popup弹框的层级异常,显示在了modal底下,或者某个组件(如modal的footer区域的类样式)出现多个css文件的重复定义,导致正常的css效果被覆盖。

对于第一个问题,排查后发现是文件的z-index控制器没有正常初始化,导致z-index异常,debug发现压根儿没运行到对应的代码(PS:对打包混淆后的代码进行debug是真要命)。

第二个问题,发现是多打包了出来一个css文件,而且在这次css文件之后才加载,导致样式被覆盖。

而且这些问题都是本地开发正常,部署上线后才有问题,因此将问题范围缩小到环境和部署上。

处理

后面找到package.lock.json文件,发现里面存在两个组件库ui的依赖文件,其依赖的vue版本分别为27与29版本,导致了该问题。29版本为最外层父级项目的依赖,

解决方案1:

重新统一组件库依赖的vue版本,使多个项目的组件库依赖的vue版本都为同一个。

解决方案2:

最外层父级本身不是一个业务项目,而只是维护了一些公共组件或工具包采用monorepo管理各个子业务项目的容器。而加入组件库依赖也只是为了写公共组件时能够给予组件库的相关代码提示和一些插件自动导入的功能。

基于此,我们把最外层的组件库依赖调整到具体的公共组件包里面,在这里有固定vue版本,整个公共包也只有公共组件需要vue和组件库依赖。

重新install或通过pnpm -r up @组件库 命令升级完后,lock文件仅出现一个dlz-ui依赖,部署后线上恢复正常。

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

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

相关文章

Java中的API设计与文档生成最佳实践

Java中的API设计与文档生成最佳实践 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java开发中,设计良好的API(Application Program…

轻量级服务器内存不够编译的情况解决方案(以安装Ta-Lib库为例)

安装 TA-Lib 时遇到的问题通常与系统缺少必要的编译依赖项或者内存不足有关。以下是一些解决步骤,你可以按照这些步骤尝试解决问题: 问题描述:编译安装Tal-ib库出现以下问题: root@tianbaobao12:~/shipan/ta-lib# pip install ta-lib Collecting ta-libUsing cached TA-L…

微信发布分班查询结果

亲爱的老师们!期末考完,新学期就快要来了,还在为分班查询头疼吗?别担心,今天我要和大家分享一个超级实用的小技巧——如何通过微信发布分班查询结果,让家长们和学生们都能掌握新学期的动态? 分…

“深入了解Redis缓存:探索Redis 6的新数据类型“

目录 1. 介绍 2. Bitmaps(可以称为字符串,专门进行位操作的字符串) 2.1 概念 2.2 setbit(设置Bitmaps中某个偏移量的值) 2.3 getbit(获取Bitmaps中某个偏移量的值) 2.4 bitcount&#xff…

【Python】神经网络回归预测模型,Python代码实现

场景描述:基于物联网检测设备,大量采集流量数据和液位高度数据存储在时序数据库(influxdb)中。并采用下面代码对数据进行预测 #!/usr/bin/env python # -*- coding: UTF-8 -*- # Author:李智敏 # Wechat:anark919 # Date:2024-01-05 10:17 # Title: imp…

【C语言】16.动态内存管理

文章目录 1.为什么要有动态内存分配2.malloc和free2.1 malloc2.2 free 3.calloc和realloc3.1 calloc3.2 realloc 4.常见的动态内存的错误4.1 对NULL指针的解引⽤操作4.2 对动态开辟空间的越界访问4.3 对⾮动态开辟内存使⽤free释放4.4 使⽤free释放⼀块动态开辟内存的⼀部分4.5…

Golang - 连接MySQL执行查询脚本

脚本如下,简单易用: package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type BaseID struct {ID int64 gorm:"primaryKey" json:"id" }type Tasks struct {BaseIDUUID string…

初识 GPT-4 和 ChatGPT

文章目录 LLM 概述理解 Transformer 架构及其在 LLM 中的作用解密 GPT 模型的标记化和预测步骤 想象这样⼀个世界:在这个世界里,你可以像和朋友聊天⼀样快速地与计算机交互。那会是怎样的体验?你可以创造出什么样的应用程序?这正是…

【PS】提取手写签名

准备工具: 纸张:用于承载签名; 笔:用于签名; 手机:用于拍摄签名; Adobe Photoshop 版本: 12.0.3 (12.0.3x20101211 [20101211.r.1222 2010/12/11:02:00:00 cutoff; r branch]) x32:用…

亚足联官方公布18强赛抽签时间及规则,国足确认位列第五档,你们觉得国足能进世界杯吗?

亚足联官方公布18强赛抽签时间及规则,国足确认位列第五档,你们觉得国足能进世界杯吗? 今天亚足联官方宣布了世预赛18强赛分组抽签仪式时间,本次抽签仪式将于6月27日15点在马来西亚吉隆坡举行。除了抽签时间之外,足联还…

IMU用于飞行坐姿校正

为了提升长途飞行的舒适度并预防乘客因不良坐姿导致的身体不适,来自荷兰上海两所大学的研究团队携手开发出一种创新的“舒适穿戴”设备,专为识别飞行中的坐姿设计。 研究团队制作了两种原型设备:一种追求极致舒适,另一种为紧身设…

FFmpeg源码:AV_RB32宏定义分析

一、AV_RB32宏定义的作用 AV_RB32是FFmpeg源码中经常出现的一个宏,其定义如下: #ifndef AV_RB32 # define AV_RB32(p) AV_RB(32, p) #endif 该宏定义有多层。把它简化为函数,其函数声明可以等价于: uint32_t AV_RB32(uint…

windows下 nodejs升级版本

使用n升级node,需要安装git或安装linux支撑组件,后来在网上找资料 直接下载node.exe覆盖原文件即可。 升级步骤如下: 1.查看当前node版本 node -v 2.下载相应版本的nodejs,网址是nodejs下载,找个你想要的版本下载node.exe 3.找到你node的安装…

在C#中对 JSON进行序列化和反序列化处理

概述:在现代软件开发领域,不同系统和平台之间的数据交换是不可或缺的方面。JSON(JavaScript 对象表示法)因其轻量级、人类可读和易于解析的特性而成为一种无处不在的数据格式。使用 C# 🚀编程的 JSON 序列化和反序列化…

Scala学习笔记14: 模式匹配和样式类

目录 第十四章 模式匹配和样式类1- 模式匹配2- 模式中的变量3- 类型模式4- 匹配数组、列表和元组等集合5- 样例类6- 守卫7- 提取器8- 变量声明中的模式9- for推导式中的模式end 第十四章 模式匹配和样式类 在Scala中, 模式匹配和样例类是强大的功能, 用于处理复杂的数据结构和…

虚拟现实(VR)游戏与增强现实(AR)游戏的区别

随着科技的飞速发展,沉浸式游戏体验已经成为现代娱乐的重要组成部分。虚拟现实(VR)游戏和增强现实(AR)游戏是这类体验中的两大主流,但它们在技术实现、用户体验和应用场景上有显著的区别。本文将详细探讨VR…

Java 从 6 到 21 的重要变动回顾

Java 从 6 到 21 的重要变动回顾 Java 自从发布以来,一直是全球最受欢迎的编程语言之一。其不断发展的特性和功能,使得它在各种应用程序中得以广泛应用。从 Java 6 到 Java 21,Java 语言和平台经历了许多重要的变动。本文将深入探讨这些变动…

可信启动Trusted Board Boot

TBB Trusted Board Boot(TBB)对所有固件镜像(包括普通世界的bootloader)进行身份验证,以防止恶意固件在平台上运行。TBB使用公钥加密标准 (PKCS)来建立信任链(Chain of Trust&#…

EtherCAT扫盲,都是知识点

1. 什么是EtherCAT EtherCAT,全称Ethernet for Control Automation Technology,字面意思就是用于控制自动化技术的以太网。它是一种基于以太网的实时工业通信协议,简单说,就是让机器们通过网线互相聊天的高级方式。 EtherCAT 是最…

项目训练营第三天

项目训练营第三天 注册登录测试 前面我们编写了用户注册、登录的逻辑代码,每编写完一个功能模块之后,我们都要对该模块进行单元测试,来确保该功能模块的正确性。一般情况下使用快捷键Ctrl Shift Insert,鼠标左击类名可以自动生…