ElementPlus 自定义主题(Vite4 + Vue3)

配置 ElementPlus 主题的时候遇到 SCSS 循环导入的报错,排查后发现问题是因为在 main.tsvite.config.ts 中引入了两次自定义主题的样式文件导致的。解决方法很简单,去掉 main.ts 中导入自定义主题的文件即可。这个问题发生在按需导入的时候,全量导入暂时没有测试。

下面是配置 ElementPlus 自定义主题的流程

  1. 进入 ElementPlus 官网
  2. 创建自己的自定义样式文件,官网这里是 styles/element/index.scss并把图中的内容复制进去,在这个文件里自定义自己的样式。样式变量可以参考:Github在这里插入图片描述

如果不是按需导入,则将 2. 最后一行代码放开,并在 main.ts 中引入创建的样式文件(未测试);如果是按需导入,则需要删除 main.ts 中导入自定义样式的代码,并配置 vite.config.ts:

import path from 'path'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 你也可以使用 unplugin-vue-components
// import Components from 'unplugin-vue-components/vite'
// import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// 或者使用 unplugin-element-plus
import ElementPlus from 'unplugin-element-plus/vite'

// vite.config.ts
export default defineConfig({
  resolve: {
    alias: {
      '~/': `${path.resolve(__dirname, 'src')}/`,
    },
  },
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@use "~/styles/element/index.scss" as *;`,
      },
    },
  },
  plugins: [
    vue(),
    // use unplugin-vue-components
    // Components({
    //   resolvers: [
    //     ElementPlusResolver({
    //       importStyle: "sass",
    //       // directives: true,
    //       // version: "2.1.5",
    //     }),
    //   ],
    // }),
    // 或者使用 unplugin-element-plus
    ElementPlus({
      useSource: true,
    }),
  ],
})

以上代码来自 ElementPlus 官网。主要注意 cssplugins 选项下的内容,根据项目采用的插件 unplugin-vue-components 或者 unplugin-element-plus 进行相应的配置。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值