之前的解决方案是从node_modules中的element plus拷贝出对应scss样式来,但是有同学指出,方案有问题。个人也觉得拷贝出来是在增加代码量。这两天参考了网上的写法以及其他作者的博客,重新总结了一套方法,方案如下。

一、准备

1、本次使用的是Vite来搭建项目,所以还有使用cli来构建的本方法不适应。建议换成vite来构建。

2、package.json安装如下依赖到devDependencies,这里注意要使用的npm指令

"unplugin-auto-import": "^0.5.11",
"unplugin-vue-components": "^0.19.3",

3、css预处理器使用scss

二、实现步骤

(1)主题定义

// index.scss$--colors: ("primary": ("base": #00a063,),"success": ("base": #21ba7f,),"warning": ("base": #f2711c,),"danger": ("base": #db2828,),"error": ("base": #db2828,),"info": ("base": #42b8dd,),
);// You should use them in scss, because we calculate it by sass.
// comment next lines to use default color
@forward "element-plus/theme-chalk/src/common/var.scss" with(// do not use same name, it will override.$colors: $--colors,$button-padding-horizontal: ("default": 50px));// if you want to import all
// @use "element-plus/theme-chalk/src/index.scss" as *;// You can comment it to hide debug info.
// @debug $--colors;

(2)在Vite.config.ts中进行配置和引入

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import AutoImport from 'unplugin-auto-import/vite'
import path from 'path'export default ({ mode }) => {return defineConfig({// 路径别名定义resolve: {alias: {'@': path.resolve(__dirname, 'src'),'components': path.resolve(__dirname, 'src/components'),'views': path.resolve(__dirname, 'src/views')}},// css全局处理css: {preprocessorOptions: {scss: {// 这里路径自己改,找到自己定义的scss文件additionalData: `@use "@/assets/css/index.scss" as *;`,}}},plugins: [vue(),AutoImport({resolvers: [ElementPlusResolver({importStyle: "sass",})],}),Components({// allow auto load markdown components under `./src/components/`extensions: ['vue', 'md'],// allow auto import and register components used in markdowninclude: [/\.vue$/, /\.vue\?vue/, /\.md$/],resolvers: [ElementPlusResolver({importStyle: 'sass',}),],dts: 'src/components.d.ts',})],// vue-tsc --noEmit --skipLibCheck用来开启ts打包校验build: {assetsDir: './static',chunkSizeWarningLimit: 500,minify: 'terser',terserOptions: {compress: {// warnings: false,drop_console: true,  //打包时删除consoledrop_debugger: true, //打包时删除 debuggerpure_funcs: ['console.log'],},output: {// 去掉注释内容comments: true,},},},server: {host: '0.0.0.0',port: 8000,cors: true,proxy}})
}

三、注意

这里一定要注意!一定要注意!一定要注意! 当时我就是在这里卡住了,一直纳闷为什么引入错误。

如果你的element plus一开这样引入了,一定都去掉。因为饿了吗的源码里存在!important以及merge这种权重和样式合并类代码,自然把自定义都覆盖了。所以请去掉。

element plus 主题色替换相关推荐

  1. element-ui 整体替换主题色

    自定义主题 Element 默认提供一套主题,CSS 命名采用 BEM 的风格,方便使用者覆盖样式.我们提供了三种方法,可以进行不同程度的样式自定义. ¶仅替换主题色 如果仅希望更换 Element ...

  2. node-sass改dart-sass and 一些七七八八,实现sass主题色修改

    sass相关七七八八 dart-sass sass SCSS变量 css变量 SCSS数据类型 !default 插值语句 条件语句 @if @for循环 @each循环 @while循环 @impo ...

  3. Vue - 超详细 Element 组件库主题颜色进行 “统一全局“ 替换,将默认的蓝色主题色更换为其他自定义颜色(保姆级教程,简易且标准全局替换主题色)

    前言 网上的文章可以用乱七八糟来形容了,各种奇葩的引入.安装各种东西,本文提供简洁且符合官方标准的解决方案. Element UI 默认主题色是蓝色,很可能与我们设计稿不一致(比如设计稿是绿色主题), ...

  4. Element UI 改变主题色

    文章目录 前言 第一种方法 1.安装scss包 2.新建一个样式文件 引入 第二种方法 所以我们可以结合第一种和第二种情况 推荐使用 前言 用于实现不同功能的系统往往需要独特的主题色,本文用于更改el ...

  5. 在vue项目中引入element,并改变主题色

    写项目提高开发效率是最重要的,引入UI框架就是提高开发效率的有效途径. 这里就说一下自己是如何引入UI框架的--vue中引入elementUI.(项目其实早已经开发完了,只是回过头来回顾一下自己当时是 ...

  6. 使用 css/less 动态更换主题色(换肤功能)

    前言 说起换肤功能,前端应该是非常熟悉了? 一般来说换肤的需求分为几种: 1. 纯前端,直接在页面前端通过点击自由切换限定的几种主题色,切换之后主题色变量存到本地浏览器 2. 在后台配置好色值,传到前 ...

  7. element-plus 更换主题色

    element-plus 更换主题色 场景: 简单的定制主题色,并不需要有按钮切换主题色. 实现: 在项目中新建你的theme.scss,代码如下: // style/element/index.sc ...

  8. vue中element自定义主题

    仅替换主题色 单纯的只是想换个主题颜色请参考ElementUI官网的自定义主题. 链接: https://element.eleme.cn/#/zh-CN/component/custom-theme ...

  9. 动态更换主题色(换肤功能)

    文章目录 对于可供选择的颜色/主题样式换肤的实现 一个全局class控制样式切换 JS改变href属性值切换样式表,例如 HTML 的 rel 属性下的 alternate 实现: 对于制定动态色值换 ...

最新文章

  1. 解救被困传销女演员 助人减肥找老婆 蚂蚁森林又现神功能
  2. 【转】MapReduce:详解Shuffle过程
  3. 抽象工厂和工厂设计模式之间有什么区别?
  4. 使用POI将doc文件转换为html
  5. python的本质,讨论 - 廖雪峰的官方网站
  6. 采样算法哪家强?一个针对主流采样算法的比较
  7. javascript乘法和加法_Web前端:JavaScript中的NaN是什么?
  8. [CQOI2017] 老C的任务(差分 + 树状数组 / K-D tree)
  9. svm分类器训练详细步骤_「五分钟机器学习」向量支持机SVM——学霸中的战斗机...
  10. CSS深入理解学习笔记之vertical-align
  11. python函数进阶小结_python之函数进阶
  12. 【2007-3】【分硬币】
  13. bat ping 返回值_专科生可以进bat大厂吗?
  14. 蓝桥杯java 大纲,2019 第十届蓝桥杯Java省赛B组个人总结
  15. jq ajax异步上传文件,jQuery Ajax上传文件
  16. 虚拟机Linux IP地址更改
  17. 微信公众平台开发——引言
  18. 安卓音视频入门难,老司机分享音视频开发学习技巧与痛点
  19. 全球化安全生产 质量保障体系建设探索
  20. Metabase学习教程:提问-3

热门文章

  1. Image Thresholding
  2. MYSQL查看某个数据库下所有表索引的数据量及占用空间大小
  3. Vue实现记住账号密码功能
  4. 关于“先定一个小目标,比如挣它一个亿”
  5. pyqt5实现在IE内核下打开web界面,并实现自动解除IE安全策略问题。
  6. 京都计算机学院放假时间表,放假通知来了
  7. 索引器的详细讲解(C#)
  8. 23考研试卷拆封详细流程!
  9. java面向对象的对象小解
  10. Reabble.com-KindleRSS新闻杂志订阅