1、下载依赖
pnpm install element-plus --save
pnpm install sass sass-loader --save-dev
2、按需导入-自动引入element-plus组件库
pnpm install -D unplugin-vue-components unplugin-auto-import
3、按需导入-修改主题颜色
3.1、下载依赖
pnpm i unplugin-element-plus -D
3.2、创建一个element.scss 在vite.config.ts里面导入
关键:ElementPlusResolver({ importStyle: 'sass' }) // importStyle配置样式引入方式,自动引入修改主题色设置此属性
# element.scss
/* 重写element-plus样式 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
$colors: (
'primary': (
// 主色
'base': #00C8F2,
),
'success': (
// 成功色
'base': #1dc779,
),
'warning': (
// 警告色
'base': #ffb302,
),
'danger': (
// 危险色
'base': #e26237,
),
'error': (
// 错误色
'base': #cf4444,
),
)
)
# vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import VueSetupExtend from 'vite-plugin-vue-setup-extend'
import ElementPlus from 'unplugin-element-plus/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import VitePluginCompression from 'vite-plugin-compression'
export default defineConfig({
plugins: [
vue(),
VueSetupExtend(),
ElementPlus({ useSource: true }),
AutoImport({
imports: ['vue', 'vue-router', 'pinia'],
resolvers: [ElementPlusResolver({ importStyle: 'sass' })]
}),
Components({
resolvers: [ElementPlusResolver({ importStyle: 'sass' })]
}),
VitePluginCompression({
// 是否在控制台输出压缩结果
verbose: true,
// 不禁用压缩
disable: false,
// 压缩后是否删除原文件
deleteOriginFile: false,
// 压缩前最小文件大小
threshold: 10240,
// 文件类型
algorithm: 'gzip',
// 压缩算法
ext: '.gz'
})
],
css: {
preprocessorOptions: {
stylus: {
imports: [resolve(__dirname, './src/assets/css/components/theme.styl')]
},
scss: {
// 自动导入定制化样式文件进行样式覆盖
additionalData: `
@use "@/assets/css/components/element.scss" as *;
`
}
}
},
resolve: {
// 设置快捷指向
alias: {
'@': resolve(__dirname, 'src')
}
},
})