集成 Element Plus 到 Nuxt
2024-12-22· 4min
#安装依赖
- package.json
$ pnpm install -D @element-plus/nuxt element-plus unplugin-element-plus
#配置文件
- nuxt.config.ts
import ElementPlus from "unplugin-element-plus/vite";
export default defineNuxtConfig({
vite: {
plugins: [
ElementPlus({
useSource: true,
}),
],
css: {
preprocessorOptions: {
scss: {
additionalData: `
@use "@/assets/element-plus.scss" as element;
`,
},
},
},
},
modules: ["@element-plus/nuxt"],
elementPlus: {
importStyle: "scss",
},
});
#引入 Element Plus 样式文件
- element-plus.scss
// 1. 引入 element-plus 样式
@import "element-plus/theme-chalk/dark/css-vars.css";
// 2. 按需自定义覆盖样式
$-colors: (
"primary": (
"base": #303133,
),
);
@forward "element-plus/theme-chalk/src/common/var.scss" with (
$colors: $-colors
);
.el-avatar {
background: transparent;
cursor: pointer;
}
#使用例子
- demo.vue
<script lang="ts" setup>
import { Select } from "@element-plus/icons-vue";
defineProps(["imgSrc"]);
</script>
<template>
<ElImage :src="imgSrc" fit="cover" lazy>
<template #placeholder>
<ElIcon><Select /></ElIcon>
</template>
</ElImage>
</template>