原文:https://www.jb51.net/article/258647.htm
利用unplugin-vue-components插件进行自动按需导入,当我们使用element的标签时,无需再使用import对组件进行导入。
例如:
自动导入
注意:当我们想要使用命令的方式创建element组件时,样式会无法自动引入。
比如:
import { ElMessage } from 'element-plus'
ElMessage.warning('warning')
如果不采用import的方式引入,会直接报错:ElMessage没有定义。所以这个import是省不了了。但是import了之后,消息弹窗是出来了,却没有样式。利用unplugin-element-plus 可以解决,该插件的主要功能如下:
import { ElButton } from 'element-plus'
import 'element-plus/es/components/button/style/css'
插件其实是将需要的组件的css或者sass文件自动引入进来
//首先安装unplugin-vue-components和unplugin-element-plus
npm i unplugin-vue-components unplugin-element-plus -D
//vite.config.ts
import ElementPlus from 'unplugin-element-plus/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins: [
ElementPlus({
importStyle: 'sass',
useSource: true
}),
Components({
resolvers: [ElementPlusResolver()]
})
]
})
配置之后,可以享用element-plus的自动导入了。当然使用命令的组件还是需要手动导入一下。
elementPlus 图标自动引入
npm i -D unplugin-icons unplugin-vue-components
npm i @element-plus/icons-vue
//vite.config.ts
import path from 'path'
import {
defineConfig
} from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import {
ElementPlusResolver
} from 'unplugin-vue-components/resolvers'
const pathSrc = path.resolve(__dirname, 'src')
export default defineConfig({
esolve: {
alias: {
'@': pathSrc,
},
},
plugins: [
vue(),
AutoImport({
resolvers: [
ElementPlusResolver(),
IconsResolver({
prefix: 'Icon',
}),
],
dts: path.resolve(pathSrc, 'auto-imports.d.ts'),
}),
Components({
resolvers: [
ElementPlusResolver(),
IconsResolver({
enabledCollections: ['ep'],
})
],
dts: path.resolve(pathSrc, 'components.d.ts'),
}),
Icons({
autoInstall: true,
}),
]
})