当前位置: 首页 > news >正文

【bug】antd全局的主题色样式被覆盖,被修改为`antd`默认的主题色

背景:

项目本身修改了主题色,配置如下:

// umi配置文件
export default {theme: {'primary-color': '#2F54EB', // 全局主色},
};

需要对图片上传组件做封装,并在项目中统一引用,如下

import { TdsUpload } from 'tdsComponents;

环境信息

node

tiands@tiandsdeMacBook-Pro demo-doc % node -v
v14.18.1
tiands@tiandsdeMacBook-Pro demo-doc % npm -v
6.14.15

组件打包

组件使用father(^4.1.0)进行打包

问题描述

对问题的表现的描述

进入引用了TdsUpload的页面时,全局的主题色样式被覆盖,被修改为antd默认的主题色
在这里插入图片描述


原因分析

对问题的初步判断

根据现象判断,可能是组件内引用了antd组件的样式覆盖了项目内的样式,导致主题色被污染


解决流程

如何定位并解决问题

根据初步的原因分析,可能是组件打包时打包了antd的样式文件,查看father的打包配置[2],修改了打包时注入的 Less 变量,使其和主项目保持一致,这样即使覆盖了也不影响,修改如下(并无效果):

// father配置文件 .fatherrc.ts
import { defineConfig } from 'father';
export default defineConfig({esm: { output: 'dist' },umd: {theme: {'primary-color': '#2F54EB', // 全局主色},},
});

既然less变量影响不了,那我直接不打包antd不就好了,修改配置如下:

import { defineConfig } from 'father';
export default defineConfig({esm: { output: 'dist' },umd: {externals: {antd: 'antd',},},
});

依旧不好使,这时候我怀疑是不是配置里面哪里引入了antd没有删除干净,所以我在项目内搜索了关键字“antd”,然后无意间在某个组件内发现如下代码:

import 'antd/dist/antd.css'; 

解决方案

这里是该问题的具体解决方案

删除非必要的antd.css引入

import 'antd/dist/antd.css'; // 删除此行
import React from 'react';
import { Row, Col } from 'antd';
import styles from './index.less';

深度思考

在解决流程的第一步就可以发现,修改变量对结果毫无影响,这时就可以猜测不是打包的影响了
应该使用控制变量法,对自己的猜测进行验证(直接不打包,看是否有影响)

参考资料

  1. 如何验证程序是否完成,测试以及修正Bug?

  2. father的打包配置

相关文章:

【bug】antd全局的主题色样式被覆盖,被修改为`antd`默认的主题色

背景: 项目本身修改了主题色,配置如下: // umi配置文件 export default {theme: {primary-color: #2F54EB, // 全局主色}, };需要对图片上传组件做封装,并在项目中统一引用,如下 import { TdsUpload } from tdsComponents;环境信息 node tiandstiandsdeMacBook…...

MySQL DDL表操作【入门到精通】

目录 一、查询创建 1、查询当前数据库所有表 2、查看指定表结构 3、查询指定表的建表语句 4、创建表结构 二、数据类型 1、数值类型 2、字符串类型 3、日期时间类型 三、表操作-案例 设计一张员工信息表,要求如下: 对应的建表语句如下&#…...

《MySQL系列-InnoDB引擎28》表-约束详细介绍

约束 1 数据完整性 关系型数据库系统和文件系统的一个不同点是,关系数据库本身能保证存储数据的完整性,不需要应用程序的控制,而文件系统一般需要在程序端进行控制。当前几乎所有的关系型数据库都提供约束(constraint)机制,该机制…...

使用docker部署宝塔环境

经常需要部署lnmp环境,宝塔是一个不错的选择,包括安装各种插件,添加网站,设置定时任务等都非常方便。这次使用docker来部署。 拉取centos镜像 docker pull centos启动容器 1.-p端口映射,-d后台运行 2. 文件夹做一下映…...

ORB_SLAM2+kinect稠密建图

下载代码:https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 运行代码: 解压代码后,删掉作者自己编译的build文件夹(下面三个都删除): ~/ORB_SLAM2_modified/build, ~/ORB_SLAM2_modified/T…...

mujoco安装及urdf转xml方法记录

参考 mujoco210及mujoco-py安装 下载适用于Linux或 OSX的 MuJoCo 2.1 版二进制文件 。 将mujoco210的下载的目录解压到~/.mujoco/mujoco210路径下. 注意:如果要为包指定非标准位置,请使用环境变量MUJOCO_PY_MUJOCO_PATH。 验证是否安装成功&#xff08…...

Visual Studio 2019 + Qt 项目版本信息新增到资源以及通过代码读取资源存储的版本信息

文章目录前言一、如何在VisualStudio2019中新增项目版本信息二、在程序中调用项目版本信息1.引入库version.lib1.1.通过vs自带的属性页引入库1.2.手动引入库2.新增版本信息读取类3.调用类获取信息总结前言 本文主要讲述如何在Visual Studio 2019 以及Qt结合的开发项目中&#…...

裸辞两个月还能不能找到工作?亲身经历告诉你结果·····

这是我在某论坛看到的一名网友的吐槽: 软件测试四年,主要是手动测试(部分自动化测试和性能测试,但是用的是公司内部自动化工具,而且我自动化方面是弱项。)现在裸辞两个月了,面试机会少而且面试…...

2023华为面试真题

【华为】面试真题: 面试前需要准备: 1. Java 八股文:了解常考的题型和回答思路; 2. 算法:刷 100-200 道题,记住刷题最重要的是要理解其思想,不要死记硬背,碰上原题很难&#xff0…...

【C++】C++11新特性——基础特性

文章目录一、列表初始化1.1 {}初始化1.2 initializer_list类型二、类型推导2.1 auto2.2 auto注意事项2.3 decltype三、新增与改进3.1 nullptr3.2 范围for3.3 array3.4 forward_list3.5 unordered系列3.6 final与override一、列表初始化 1.1 {}初始化 C11 引入了一个新的初始化…...

Mac 遇到pip: command not found问题的解决

Mac 遇到pip: command not found问题的解决在学习Playwright时候,需要下载相关依赖Playwright 是专门为满足端到端测试的需要而创建的。Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。在 Windows、Linux 和 macOS 上进行本地测试或…...

[ 云计算 | Azure ] Episode 03 | 描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx

正常情况如果你不是会计,或者对钱相关的数字比较敏感的财务,本文的一些东西你不会接触的,但是最为云架构或者云运营,你可能会遇到如何采购亦或者估算的我成本和运营成本等等,所以本文的一些知识点就需要进行一定的了解…...

STM32F103R8T6 SPWM实现正弦波输出

前言 PWM合成正弦波,原理什么的不详细说了,概括一下就是 PWM有效面积的积分 正弦波的有效面积。PWM的频率越快,细分的越多,锯齿也就越不明显。 做法是:首先利用正弦波取点软件,取点1000个,生…...

Oracle 11g创建和删除数据库实例

一、创建数据库实例 1.点击“开始” -> “Oracle -OraDb11g_home1” -> “Database Configuration Assistant” 2.点击“下一步” 3.选择“创建数据库”,点击“下一步” 4.默认设置,不用更改,直接点击“下一步” 5.填写要创建的“实例…...

MySQL(四)视图、存储过程、触发器

视图、存储过程、触发器视图检查选项视图的更新存储过程存储过程基本语法变量系统变量用户自定义变量局部变量if判断参数casewhile循环repeat循环loop循环cursor游标handler条件处理程序存储函数触发器视图 视图(View)是一种虚拟存在的表。视图中的数据…...

在 Ubuntu 下编写 C++

在 Ubuntu 下编写 C 在 Ubuntu 上面编写 C,本章节内容主要介绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一 个 C源文件。通过编写最简单的示例“Hello,World!”。带领大家学习如何在 Ubuntu 终端下编 辑和编译 C。这里要求大家会在 Ubuntu 上使用 vi/vim…...

Linux主要目录的意思

Linux目录的意思 文章目录Linux目录的意思bin目录(命令目录):二进制目录,二进制是可以直接执行的机器码,里面存放着可以执行的命令;bin目录右下角有个箭头类似于Windows的快捷方式 sbin目录:系…...

启动golang项目编译的exe可执行文件获取windows管理员权限(UAC)

背景: go代码启动以后里面涉及到修改ip地址等操作,需要管理员权限。打包好的exe文件双击执行默认是没有管理员权限的,那么修改ip就会提示需要管理员权限。 解决方法1:右键以管理员权限运行exe文件 解决方法2:编译exe…...

Springboot怎么快速集成Redis?

前言其实在Springboot中集成redis是一个非常简单的事情,但是为什么要单独输出一篇文章来记录这个过程呢?第一个原因是,我记性不是太好,这次把这个过程记录下,在新的项目搭建的时候或者需要在本地集成redis做一些其他相…...

COM技术简单介绍

COM (Component Object Model) 是一种面向对象的编程技术,它在 Windows 操作系统中广泛使用。COM 提供了一种标准的方法来创建和使用可重用的软件组件,这些组件可以通过不同的编程语言和应用程序进行访问和使用。 COM 技术的主要特点包括: 组…...

JavaSec-RCE

简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性&#xff0c…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

LLMs 系列实操科普(1)

写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...