vue3+vite中使用自定义element-plus主题配置

自定义主题分为两种,一种是 全部导入 另一种是 按需导入 方式

全部导入方式

ps:默认已经安装跟在main.js中配置完毕

新建一个文件存放主题样式element.scss(路径为assets/scss/element.scss)

js 复制代码
// element.scss
@forward 'element-plus/theme-chalk/src/common/var.scss' with ( 
    $colors: ( 
        "primary": (
            "base": #7bb1f5,
        ),
    ),
);
// 这句记得要加
@use "element-plus/theme-chalk/src/index.scss" as *;

重点来了,需要在main.js中把引入的element-plus样式文件替换成自己写的

js 复制代码
// main.js
// 引入element-plus样式文件-------使用了自定义的主题样式这里就不能引入element-plus的样式文件否则不生效
// import 'element-plus/dist/index.css'  
import '@/assets/scss/element.scss'  

全部导入方式就搞定了。

按需导入方式

还是上面的那个element.scss文件

js 复制代码
// element.scss
@forward 'element-plus/theme-chalk/src/common/var.scss' with ( 
    $colors: ( 
        "primary": (
            "base": #7bb1f5,
        ),
    ),
);
// 这句要注释掉
// @use "element-plus/theme-chalk/src/index.scss" as *;

重点!!!!需要安装一个包 yarn add unplugin-element-plus --dev

js 复制代码
// vite.config.js
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// 导入对应包 
import ElementPlus from 'unplugin-element-plus/vite'

export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver({ importStyle: "sass" })], //这里记得需要添加一个配置
    }),
    Components({
      resolvers: [ElementPlusResolver({ importStyle: "sass" })], //这里记得需要添加一个配置
    }),
    // 按需定制主题配置
    ElementPlus({
        useSource: true,
    }),
  ],
  css: {
    preprocessorOptions: {
        scss: {
            additionalData: `
                @use "@/assets/scss/element.scss" as *;
                `,
            },
        },
    }
})

还有最后一点就是在main.js中把element-plus样式文件引入去掉

js 复制代码
// main.js
// 引入element-plus样式文件-------使用了自定义的主题样式这里就不能引入element-plus的样式文件否则不生效
// import 'element-plus/dist/index.css' 

ok了,这就是按需导入的方式。

相关推荐
粥里有勺糖23 分钟前
视野修炼-技术周刊第130期 | 光影效果
前端·javascript·github
小岛前端38 分钟前
AI Skills 已经封神,但新的问题却越来越严重!
前端·后端·github
拖孩41 分钟前
一个人 + AI 做的小程序,上线 15 天赚了 10 块 5
前端·后端·微信小程序
用户939838294159942 分钟前
安卓自动化脚本热更新怎么做?不重新打包 APK 也能更新代码
前端
猫七先生1 小时前
在 React 里用 PMTiles 自托管底图
前端
tanghonghanhaoli1 小时前
【图书翻译】有意义的游戏设计:桌面游戏的方法论与心理学(第1、2章)
前端·游戏·ui
光影少年1 小时前
react native打包优化、包体积瘦身、离线包/热更新方案
前端·react native·react.js
Cache技术分享1 小时前
504. Java 反射 - 创建一个简单的依赖注入框架
前端·后端
_codeOH1 小时前
# 手把手复刻 DeepSeek 官网效果:玻璃拟态 + WebGL 流体 + Spring 动画,一篇讲透
前端
名字还没想好☜1 小时前
Next.js 用 cookies()/headers() 读请求信息:动态渲染触发、缓存失效与在 Server Action 里读写 cookie
前端·javascript·缓存·react·next.js·app router