写点什么

vue3.2 组件库 -element plus 自动按需引入

作者:Mr.Cactus
  • 2021 年 12 月 20 日
  • 本文字数:1402 字

    阅读完需:约 5 分钟

vue3.2组件库-element plus 自动按需引入

前言:本文主要介绍使用 vite2.7 创建的 vue3.2 项目中的 element-plus 组件库的自动按需引入,经测试,适用于 typescript 和 JavaScript。


0、首先是安装 element-plus

npm install element-plus --save
复制代码


1、安装自动引入组件所需要使用的两个插件

npm install -D unplugin-vue-components unplugin-auto-import
复制代码

2、在 vite.config.ts(或者 vite.config.js)文件中进行如下配置

import AutoImport from 'unplugin-auto-import/vite'import Components from 'unplugin-vue-components/vite'import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default { plugins: [ // ... AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ],}
复制代码

经过上面的配置后,便可以在 vue 项目中的任意的 SFC 中使用任意组件而不用再手动引入了,包括其对应的样式也不用手动引入。

但是,在我的实际使用时,却发现了一些问题,就是通过这种方式引入的“反馈组件”,如 Message 等,这些组件虽然可以正常使用,但是对应的样式却没有被自动引入,对于这种情况,我找到了两种解决方法:

第一种:手动引入相关样式文件

在 main.ts(或 main.js)中手动引入相应的反馈组件的样式文件。如,我用到了 Message 这个反馈组件,那么我就在 main.ts 文件中这样引入其对应的样式文件:

import 'element-plus/theme-chalk/el-message.css'
复制代码

但是这样显然不够方便,也不够优雅,于是我在翻阅 element-plus 官方手册时,注意到手册中提到了一个插件,于是有了下面的这种既足够方便又不失优雅的方式。

第二种:通过插件自动引入相关样式文件

在翻阅官方手册时,我注意到了一款插件:unplugin-element-plus,进入这个插件的仓库:https://github.com/element-plus/unplugin-element-plus/blob/HEAD/README.zh-CN.md,发现这个插件的功能就是为 element-plus 组件自动按需引入相应的样式文件,这就好办了:

  1. 安装该插件:

npm i unplugin-element-plus -D
复制代码
  1. 在 vite.config.ts(或 vite.config.js)文件中进行如下配置,

import ElementPlus from 'unplugin-element-plus/vite'export default {  plugins: [    ElementPlus({      importStyle: 'css',      useSource: true    }),  ],}
复制代码

自此,element-plus 的自动引入算是真正意义上的完成了,在使用任何组件时都不用再手动引入其对应的样式文件了。此时,完整的 vite.config.ts(或 vite.config.js)如下:

import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'
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'
// 可以前往vite官网查看所有vite配置项: https://vitejs.dev/config/export default defineConfig({ plugins: [ vue(), ElementPlus({ // 引入的样式的类型,可以是css、sass、less等, importStyle: 'css', useSource: true }), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }) ], server: { host: '0.0.0.0', open: true // 自动打开浏览器 }})
复制代码


发布于: 1 小时前阅读数: 5
用户头像

Mr.Cactus

关注

所思在远道 2020.08.19 加入

一只慢慢进步的小白

评论

发布
暂无评论
vue3.2组件库-element plus 自动按需引入