vue3.2 vite typescript element-plus自定义主题颜色,全局修改组件样式

vite.config.ts

……

export default defineConfig(({ command}) => {
  return {
    resolve: {
      alias: {
        "@": resolve(__dirname, "src")
      },
      extensions: [".js", ".json", ".ts"], // 导入时想要省略的后缀名,.vue等自定义文件不建议省略,影响IDE识别和提示
    },
    
    // 修改element主题色
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: `@use "@/assets/css/elementplus.scss" as *;`,
        },
      },
    },
    
    plugins: [
      ……
    ],
  };
});

src/assets/css/elementplus.scss

文件名称和目录,这个可以自定义,和上面vite配置对上就行。

  • 全局主题色,变量从node_modules,element-plus/theme-chalk/src/common/var.scss这个里边找
  • 组件样式覆盖,变量从chrome调试工具里边找,var()包裹的,按照那个来
@use "sass:map";
//全局主题色
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
  $colors: (
    'primary': (
      'base': #005BAD,
    ),
    'success': (
      'base': #00A85A,
    ),
    'warning': (
      'base': #F6AD55,
    ),
    'danger': (
      'base': #DC3C3A,
    ),
  )
);
//修改组件样式变量
:root{
  --el-box-shadow-light:0px 0px 8px 0px rgba(0,91,173,0.22);
  
  .el-card{
    --el-card-border-radius:8px;
  }
  .el-table{
    --el-table-header-bg-color:#0E6EB8;
    --el-table-header-text-color:#FFFFFF;
  }
}
Vue + Vite项目中引入Element Plus并添加TypeScript类型声明,你需要做以下几个步骤: 1. 安装Element Plus和TypeScript:首先确保已经安装了Vue CLI,然后运行以下命令安装Element Plus和`@types/element-plus`用于类型支持: ``` npm install element-plus @vue/cli-plugin-vuex @vue/cli-plugin-eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin --save-dev npm install @types/element-plus --save-dev ``` 2. 配置Vite:打开`vite.config.ts`文件,添加`tsconfig.json`配置,以便Vite使用TypeScript构建: ```javascript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; const isProd = process.env.NODE_ENV === 'production'; export default defineConfig({ plugins: [vue()], build: { target: 'esnext', // 这里指定输出目标,让Element Plus可以正常使用 }, transpileDependencies: ['element-plus'], // 指定需要转译的依赖包 base: './', optimizeDeps: { include: ['element-plus'], }, typescript: { compilerOptions: { typeRoots: ['./node_modules/@types',], // 设置TypeScript查找类型声明的位置 declaration: true, // 输出类型声明文件 }, }, }); ``` 3. 引入类型声明:在项目的全局目录创建一个名为`global.d.ts`(或者根据实际情况自定义)的 TypeScript 全局类型声明文件,导入Element Plus的类型: ```typescript // global.d.ts declare module '*.vue' { import Vue from 'vue' export default Vue } // 如果Element Plus有特定的类型模块需要导出,例如 ElementPlus import { ElOption } from 'element-plus'; declare module 'element-plus' { export interface ElOption extends Vue {} } ``` 4. 使用Element Plus组件:现在可以在`.vue`文件中正常引用Element Plus组件,并且编译器会根据你在`global.d.ts`中的声明提供类型检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值