解决element-plus 自定义命名空间后部分组件未生效的问题

首先创建一个scss样式表:styles/element/index.scss,命名空间名字可以随便写,偷懒的话可以从官网一模一样拷过来用就行了。

// styles/element/index.scss
// we can add this to custom namespace, default is 'el'
@forward 'element-plus/theme-chalk/src/mixins/config.scss' with (
  $namespace: 'ep'
);
// ...

第二步,配置vite.config中的css部分

import { defineConfig } from 'vite'
import sass from 'sass'

// https://vitejs.dev/config/
export default defineConfig({
  // ...
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@use "@/styles/element/index.scss" as *;`,
        // @use "@/styles/yyy.scss" as *; 如果有多个接上面的字符继续use下去就行了
        implementation: sass
      },
    },
  },
  // ...
})

第三步,也是最重要的一步,在main.js中定义命名空间,和第一步时对上就行了。官网上写的用<el-config-provider namespace="ep">的方法试过了,因为是局部更改,所以部分组件像messag-box的命名是不生效的

import ElementPlus from 'element-plus'
// import 'element-plus/dist/index.css' // 注释此行
import 'element-plus/theme-chalk/src/index.scss' // 改用命名更新后的样式表

const app = createApp(App)
app.use(ElementPlus, {
  namespace: 'ep',
  locale: zhCn
})

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值