vue3+vite+ts 按需自动导入 Element Plus,以及遇到的问题

目录

  1. 按需自动导入 Element Plus
  2. 按需自动导入Icon图标
  3. 按需自动导入 Element Plus,遇到的问题
  4. 按需自动导入Icon图标,遇到的问题 

1.按需自动导入 Element Plus

          可以参考官网https://element-plus.org/zh-CN/guide/installation.html

         1.安装 Element Plus   

# NPM
$ npm install element-plus --save

# Yarn
$ yarn add element-plus

# pnpm
$ pnpm install element-plus

2.安装unplugin-vue-components 和 unplugin-auto-import这两款插件,这两个插件可以自动注册我们用到的组件。

npm install -D unplugin-vue-components unplugin-auto-import

3.在vite.config或 webpack.config的配置文件中配置相关内容

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

//自动按需导入element plus
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [
        // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
        ElementPlusResolver(),
      ],
    }),
    Components({
      resolvers: [
        //自动导入 Element Plus 组件
        ElementPlusResolver(),
      ],
    }),
  ],
})

2.按需自动导入 Element Plus,遇到的问题 

问题1:

解决问题1:

遇到这一个问题之后,通过搜索发现,unplugin-vue-components@0.26.0版本太高了,降低版本就可以。

npm install -D unplugin-vue-components@0.25.0   

问题2:

使用 ElMessage与ElLoading 的时候出现 Cannot find name 'ElMessage' 的问题

解决问题2:

在tsconfig.json文件中引入auto-imports.d.ts

"include": [
    "src/**/*.ts", 
    "src/**/*.tsx", 
    "src/**/*.vue",
    "auto-imports.d.ts"//导入auto-imports.d.ts
  ],

        如果没有auto-imports.d.ts,可以添加一个element-plus.d.ts 文件,并在tsconfig.json文件中引入element-plus.d.ts

        element-puls.d.ts文件中的内容

export {}
declare global {
  const ElMessage:typeof import('element-plus')['ElMessage'] 
  const ElLoading:typeof import('element-plus')['ElLoading'] 
}

3.按需自动导入Icon图标

         可以参考官网https://element-plus.org/zh-CN/component/icon.html

        1.安装Icons

# NPM
$ npm install @element-plus/icons-vue
# Yarn
$ yarn add @element-plus/icons-vue
# pnpm
$ pnpm install @element-plus/icons-vue

           2. 安装  unplugin-icons 和 unplugin-auto-import 这两个插件,使用这两个插件可以从 iconify 中自动导入任何图标集

npm install -D unplugin-icons

3.在vite.config或 webpack.config的配置文件中配置相关内容

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

//自动按需导入element plus
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';

//自动按需导入icons
import IconResolver from "unplugin-icons/resolver";
import Icons from "unplugin-icons/vite";

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [
        ElementPlusResolver(),
        //icons
        IconResolver({ prefix: "icon" })
      ],
    }),
    Components({
      resolvers: [
        ElementPlusResolver(),
        //icons
        IconResolver(
         // { enabledCollections: ["ep"] } //element-plus图标库 需要修改图标使用方法
        )
      ],
    }),
    //icons
    Icons({ autoInstall: true }),
  ],
})

4.按需自动导入Icon图标,遇到的问题 

问题1:按需自动导入icons的项目中,正常使用图标的时候,不能够正常的使用

<Edit />
<el-button type="primary" :icon="Edit" circle />

解决问题1:

    <!-- 1.直接使用 -->
    <el-icon-Edit />
    <!-- 2.通过el-icon包裹使用 -->
    <el-icon>
      <el-icon-Edit/>
    </el-icon>
    <!-- 3.在button按钮中使用 -->
    <el-button type="primary"circle>
      <el-icon><el-icon-Edit/></el-icon>
    </el-button>

  • 32
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值