element-plus 更换主题色

由于跟着官方文档可能出现报错[plugin:vite:css] [sass] Module loop: this module is already,于是写一份避坑指南。

1. 安装sass

基于vite的项目默认不支持css预处理器,需要开发者单独安装

npm i sass -D

2. 准备定制化的样式文件

/* 只需要重写你需要的即可 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
  $colors: (
    'primary': (
      // 主色
      'base': #27ba9b,
    ),
    'success': (
      // 成功色
      'base': #1dc779,
    ),
    'warning': (
      // 警告色
      'base': #ffb302,
    ),
    'danger': (
      // 危险色
      'base': #e26237,
    ),
    'error': (
      // 错误色
      'base': #cf4444,
    ),
  )
)

3. 自动导入配置

这里自动导入需要深入到elementPlus的组件中,按照官方的配置文档来

  1. 自动导入定制化样式文件进行样式覆盖
  2. 按需定制主题配置 (需要安装 unplugin-element-plus npm i unplugin-element-plus
import {
    fileURLToPath, URL } from 'node:url'

import {
    defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
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'
// https://vitejs.dev/config/
export default defineConfig({
   
  plugins: [
    vue(),
    AutoImport({
   
      resolvers: [ElementPlusResolver()],
    }),
    Components({
   
      resolvers: [ElementPlusResolver({
   
        importStyle: "sass",
      })],
    }),
    // 按需定制主题配置
    ElementPlus({
   
      useSource: true,
    }),
  ],
  resolve: {
   
    alias: {
   
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css: {
   
    preprocessorOptions: {
   
      scss: {
   
        // 自动导入定制化样式文件进行样式覆盖
        additionalData: `
          @use "@/styles/element/index.scss" as *;
        `,
      }
    }
  }
})

main.js

import {
    createApp } from 'vue'
import {
    createPinia } from 'pinia'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
const app = createApp(App)

app.use(createPinia())
app.use(router)
app.use(ElementPlus)
app.mount('#app')

相关推荐

  1. element-plus 更换主题

    2024-02-06 02:44:01       56 阅读
  2. vue3中修改element plus 主题

    2024-02-06 02:44:01       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-06 02:44:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-06 02:44:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-06 02:44:01       82 阅读
  4. Python语言-面向对象

    2024-02-06 02:44:01       91 阅读

热门阅读

  1. C Primer Plus(第六版)15.9 编程练习 第6题

    2024-02-06 02:44:01       48 阅读
  2. ES6-let

    ES6-let

    2024-02-06 02:44:01      37 阅读
  3. 记一次Mysql加字段加不上问题排查过程

    2024-02-06 02:44:01       55 阅读
  4. NCCL 源码详解总目录

    2024-02-06 02:44:01       53 阅读
  5. 多线程与socket编程

    2024-02-06 02:44:01       57 阅读
  6. nginx负载均衡

    2024-02-06 02:44:01       51 阅读
  7. Blender 的重拓扑功能中的参数,

    2024-02-06 02:44:01       47 阅读
  8. salesforce flow 如何保存多选列表选中的值

    2024-02-06 02:44:01       50 阅读
  9. 【C语言】深入理解函数指针

    2024-02-06 02:44:01       58 阅读