Vue3+Ts+Vite项目全局配置Element-Plus主题色

news2025/1/11 14:25:20

概述

我找了很多博客,想全局配置Elmenet-Plus组件主题色,但都没有效果。所以有了这篇博客,希望能对你有所帮助!!!

文章目录

  • 概述
  • 一、先看效果
  • 二、创建全局颜色文件
      • 2.1 /src/styles 下新建 element-plus.scss 文件
      • 2.2 引入颜色配置文件
      • 2.3 我的目录结构
  • 三、vite.config.ts 中配置
  • 四、总结
  • 五、系列专栏文章链接
      • 第一篇:[配置husky、stylelint、commitlint,实现git提交前代码校验](http://t.csdn.cn/226Xn)
      • 第二篇:[配置@路径别名,实现@代替/src](http://t.csdn.cn/mMEwO)
      • 第三篇:[配置 vue-router路由跳转,并完成路由模块化](http://t.csdn.cn/4r1ht)
      • 第四篇:[配置vue-i18n中英文切换,完成国际化](http://t.csdn.cn/xyOaV)
      • 第五篇:[配置滚动条样式](http://t.csdn.cn/cUkdA)
      • 第六篇:[项目引入Element-plus,并配置按需自动导入](http://t.csdn.cn/mxdsS)
      • 第七篇:[配置页面切换,路由跳转过渡动画](http://t.csdn.cn/LEKk6)
      • 第八篇:[配置nprogress,实现路由加载进度条](http://t.csdn.cn/inFOa)
      • 第九篇:[基于el-menu封装左侧菜单栏组件](http://t.csdn.cn/wyGAS)

一、先看效果

实现对 Elmenet-plus 组件库中组件主题色的全局修改

在这里插入图片描述

二、创建全局颜色文件

2.1 /src/styles 下新建 element-plus.scss 文件

// 此文件路径:/src/styles/element-plus.scss
// 配置element-plus主题色
@forward "element-plus/theme-chalk/src/common/var.scss" with ($colors: (
        "primary": ("base": #21cee9),
        "success": ("base": #71d46f),
        "warning": ("base": #e6a23c),
        "danger": ("base": #E34D59),
        "error": ("base": #E34D59),
        "info": ("base": #E7E7E7),
    )
);

2.2 引入颜色配置文件

在 /src/styles/index.scss 中引入我们书写的颜色配置文件

// Element-plus全局配置(本文相关核心代码)
@import './element-plus.scss';

2.3 我的目录结构

在这里插入图片描述

三、vite.config.ts 中配置

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
// 实现 @等于./ src--绝对路径
import path, { resolve } from 'path';
// 以下三项为配置Element-plus按需自动引入
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
// svg plugin
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';

/** 路径查找 */
const pathResolve = (dir: string): string => {
	return resolve(__dirname, '.', dir);
};

/** 设置别名 */
const alias: Record<string, string> = {
	'@': pathResolve('src'),
	'@build': pathResolve('build')
};
export default defineConfig({
	plugins: [
		vue(),
		// 以下两项为配置Element-plus按需自动引入
		AutoImport({
			resolvers: [
			   // element-plus主题色配置相关--下面这句importStyle一定要写,不要写个空对象在这儿,否则就会不生效
				ElementPlusResolver({
					// 自动引入修改主题色添加这一行,使用预处理样式,不添加将会导致使用ElMessage,ElNotification等组件时默认的主题色会覆盖自定义的主题色
					importStyle: 'sass'
				})
			]
		}),
		Components({
			resolvers: [
			    // element-plus主题色配置相关--下面这句importStyle一定要写,不要写个空对象在这儿,否则就会不生效
				ElementPlusResolver({
					// 自动引入修改主题色添加这一行,使用预处理样式
					importStyle: 'sass'
				})
			]
		}),
		// 修改 svg 相关配置
		createSvgIconsPlugin({
			// 指定需要缓存的图标文件夹
			iconDirs: [path.resolve(__dirname, './src/icon')]
		})
	],
	define: {
		__VUE_I18N_FULL_INSTALL__: true,
		__VUE_I18N_LEGACY_API__: false,
		__INTLIFY_PROD_DEVTOOLS__: false
	},
	resolve: {
		alias
	},
	css: {
		preprocessorOptions: {
			scss: {
			    // element-plus主题色配置相关--引入index.scss文件
				additionalData: `@use "@/styles/index.scss" as *;`
			}
		}
	},
	// 服务端渲染
	server: {
		// 是否开启 https
		https: false,
		// 端口号
		port: 8848,
		host: '0.0.0.0',
		// 本地跨域代理 https://cn.vitejs.dev/config/server-options.html#server-proxy
		proxy: {}
	}
});

四、总结

跟着很多博客配置后都没有生效,终于配置生效后我再回头看,发现了几个需要主要的地方,以下是我认为的核心代码,希望各位注意

// 以下两项为配置Element-plus按需自动引入
AutoImport({
	resolvers: [
		ElementPlusResolver({
			// 自动引入修改主题色添加这一行,使用预处理样式,不添加将会导致使用ElMessage,ElNotification等组件时默认的主题色会覆盖自定义的主题色
			importStyle: 'sass'
		})
	]
}),
Components({
	resolvers: [
		ElementPlusResolver({
			// 自动引入修改主题色添加这一行,使用预处理样式
			importStyle: 'sass'
		})
	]
}),
css: {
	preprocessorOptions: {
		scss: {
			additionalData: `@use "@/styles/index.scss" as *;`
		}
	}
},

五、系列专栏文章链接

专栏简介:系列文章记录了从零到一 🚀 搭建 Vue3+Ts+Vite 项目的全过程,包括项目配置、组件封装、常见问题及处理方法等 🚚
初心:若本文都能对你有一点🤏🏽帮助,也是极好的
最后:点赞收藏不迷路🍺,系列文章持续更新中~~👨🏻‍💻,有任何问题欢迎👏评论区留言

第一篇:配置husky、stylelint、commitlint,实现git提交前代码校验

第二篇:配置@路径别名,实现@代替/src

第三篇:配置 vue-router路由跳转,并完成路由模块化

第四篇:配置vue-i18n中英文切换,完成国际化

第五篇:配置滚动条样式

第六篇:项目引入Element-plus,并配置按需自动导入

第七篇:配置页面切换,路由跳转过渡动画

第八篇:配置nprogress,实现路由加载进度条

第九篇:基于el-menu封装左侧菜单栏组件

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

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

相关文章

C#应用处理传入参数 - 开源研究系列文章

今天介绍关于C#的程序传入参数的处理例子。 程序的传入参数应用比较普遍&#xff0c;特别是一个随操作系统启动的程序&#xff0c;需要设置程序启动的时候不显示主窗体&#xff0c;而是在后台运行&#xff0c;于是就有了传入参数问题&#xff0c;比如传入/h或者/min等等。所以此…

湘大 XTU OJ 1260 Completed String 题解(非常详细):建立数组下标和数组元素之间的映射关系 ~scanf

一、链接 1260 Completed String 二、题目 题目描述 给一个字符串&#xff0c;请判断字符串是否出现了所有的英文字母&#xff08;不区分大小写&#xff09;。 输入 每行一个只含英文字母的字符串&#xff0c;长度不超过1000。 输出 每行输出一个样例的结果&#xff0c…

SpringBoot案例-部门管理-新增

根据页面原型&#xff0c;明确需求 页面原型 需求 阅读接口文档 接口文档链接如下&#xff1a; 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 前端在输入要新增的部门名称后&#xff0c;会以JSON格式将数据传入至后端&#xf…

基于Python实现的有限元方程求解程序附源码

问题描述 根据已知下列非齐次两点边值问题(1.2.28) { L u − d d x ( p d u d x ) q u f , a < x < b , u ( a ) α , u ′ ( b ) β , \begin{cases} \boldsymbol{L} u-\frac{\mathrm{d}}{\mathrm{d} x}\left(p \frac{\mathrm{d} u}{\mathrm{~d} x}\right)q uf, a…

markdown命令模板

markdown快速入门(typora) 1、代码块 //代码块语 public static void main(String[] args){}//linux下spring项目的启动命令 # java -jar blog start ## 2、标题&#xff1a;java # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题3、字体 …

STM32 LL库+STM32CubeMX--点亮板载LED

一、前期准备 硬件&#xff1a;STM32F103C8T6开发板调试工具&#xff1a;DAPLink(本次使用)或USB-TTL开发环境&#xff1a;STM32CubeMX、Keil、Vscode(可选)板载LED&#xff1a;PC13(低电平点亮) 二、STM32CubeMX配置 1.选择芯片型号&#xff1a; 2.配置外设时钟&#xff1a…

步入React正殿 - 事件处理

目录 扩展学习资料 React事件和DOM事件 和传统DOM事件处理异同 this关键字的处理 this关键字 在JSX中使用bind方法 在构造函数中使用bind方法 使用箭头函数【推荐】 向事件处理程序传递参数【不跨组件】 向父组件传递参数 /src/App.js /src/components/listItem.jsx…

【MySQL--->数据库基础】

文章目录 [TOC](文章目录) 一、基本概念二、实际应用中的数据库三、mysql的架构四、mysql语句分类五、存储引擎查看 一、基本概念 mysql本质是一个CS模式的网络服务,mysql是客户端,mysqld是服务端,提供高效的数据存取方案.数据库系统简单来说是一个数据集合加上管理这个数据集…

Java旋转数组中的最小数字(图文详解版)

目录 1.题目描述 2.题解 分析 具体实现 方法一&#xff08;遍历&#xff09;&#xff1a; 方法二&#xff08;排序&#xff09;&#xff1a; 方法三&#xff08;二分查找&#xff09;&#xff1a; 1.题目描述 有一个长度为 n 的非降序数组&#xff0c;比如[1,2,3,4,5]&a…

【LeetCode 75】第二十六题(394)字符串解码

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们字符串&#xff0c;让我们解码&#xff0c;那么该怎么解码呢&#xff0c;被括号【】包裹起来的字符串需要扩展成括号左边第…

一百五十一、Kettle——Linux上安装的kettle8.2开启carte服务以及配置子服务器

一、目的 kettle8.2在Linux上安装好可以启动界面、并且可以连接MySQL、Hive、ClickHouse等数据库后&#xff0c;准备在Linux上启动kettle的carte服务 二、实施步骤 &#xff08;一&#xff09;carte服务文件路径 kettle的Linux运行的carte服务文件是carte.sh &#xff08;二…

grafana部署

一、前言 grafana是一款用于将prometheus收集的数据通过ui展示出来的组件&#xff0c;可以直观的看到每个数据的情况和指标&#xff0c;grafana有很多的ui展示模板可以使用 二、部署 这里我使用docker部署 先查找一下镜像 docker search grafana 创建存放grafana数据的目录…

C++初阶之一篇文章教会你list(理解和使用)

list&#xff08;理解和使用&#xff09; 什么是list特点和优势基本操作示例用法与其他序列式容器&#xff08;如 std::vector 和 std::deque&#xff09;相比&#xff0c;std::list 显著的区别和优势成员类型 list构造函数1. default (1)2. fill (2)3.range (3)4. copy (4) li…

无涯教程-Perl - opendir函数

描述 此函数使用readdir函数打开目录EXPR,并将其与DIRHANDLE关联以进行处理。 语法 以下是此函数的简单语法- opendir DIRHANDLE, EXPR返回值 如果成功,此函数将返回true。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perl -w$dirname"/tmp";opendir ( …

MySQL~事务的四大特性和隔离级别

事务的四大特性 1.原子性&#xff1a;一个事务&#xff08;transaction&#xff09;中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成。事务在执行过程中发生错误&#xff0c;会被回滚&#xff08;Rollback&#xff09;到事务开始前的状态&#xff0c;就像这个…

MySQL环境与配置

安装MySQL https://www.mysql.com/ 进入下载官网后 下载完成后运行安装包下载完成后运行安装包 选择完路径后一直点下一步 然后运行MySQL 设置密码 这里如安装失败请右键我的电脑点击属性&#xff0c;检查电脑名和组名是否为英文 启动与停止MySQL mysql安装完毕后默认是运行…

【C语言】进阶指针,超详解,含丰富代码示例

文章目录 前言指针进阶的重点内容1.字符指针2.数组指针3.指针数组4.函数指针5.函数指针数组6. 指向函数指针数组的指针 总结 这里是初阶的链接&#xff0c;方便大家对照查看&#xff01;&#xff01;&#xff01;添加链接描述 前言 大家好呀&#xff0c;今天和大家将指针进阶…

SpringBoot在线失物招领系统

一个基于SpringBootSemanticUI的pc Web在线失物招领系统 http://localhost:8080/swzl/index 主页 http://localhost:8080/swzl/login 登录页 用户表user admin字段为true是管理员 false用户 springboot2.3 springmvc mybatis html ajax idea 或eclipse maven mys…

9.3.2.1网络原理(UDP)

1.UDP的基本特点:无连接,不可靠传输,面向数据报,全双工. 2.1~1024的端口号有特定的含义,不建议使用.比如21:ftp,22:ssh,80:http,443:https. 3.CRC校验算法:循环冗余校验和,把UDP报中的每个字节都依次进行累加,把累加的结果,放到两个字节的变量中,溢出也无所谓,因为都加了一遍.…

机器学习笔记 - 关于向量嵌入​embedding在机器学习中的使用

向量嵌入概述 向量嵌入是机器学习中最有趣和最有用的概念之一。它们是许多 NLP、推荐和搜索算法的核心。如果您曾经使用过推荐引擎、语音助手、语言翻译器等工具,您就会遇到过依赖嵌入的系统。 与大多数软件算法一样,机器学习算法也需要使用数字。有时,我们的数据集包含数值…