当前位置: 代码网 > it编程>编程语言>Javascript > ElementPlus组件与图标按需自动引入的实现方法

ElementPlus组件与图标按需自动引入的实现方法

2024年07月03日 Javascript 我要评论
按需自动引入组件1. 安装elementplus和自动导入elementplus组件的插件pnpm install element-pluspnpm install -d unplugin-vue-c

按需自动引入组件

1. 安装elementplus和自动导入elementplus组件的插件

pnpm install element-plus
pnpm install -d unplugin-vue-components unplugin-auto-import

2. vite.config.ts进行修改

import { defineconfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// elementplus自动导入
import autoimport from 'unplugin-auto-import/vite'
import components from 'unplugin-vue-components/vite'
import { elementplusresolver } from 'unplugin-vue-components/resolvers'
// https://vitejs.dev/config/
export default defineconfig({
  plugins: [
    vue(),
    // 自动导入elementplus组件
    autoimport({
      resolvers: [elementplusresolver()],
    }),
    // 自动注册elementplus组件
    components({
      resolvers: [elementplusresolver()],
    }),
  ],
})

然后就可以进行测试了

<template>
  <div class="mb-4">
    <el-button>default</el-button>
    <el-button type="primary">primary</el-button>
    <el-button type="success">success</el-button>
    <el-button type="info">info</el-button>
    <el-button type="warning">warning</el-button>
    <el-button type="danger" @click="click">danger</el-button>
  </div>
</template>
<script lang="ts" setup>
const click = () => {
  elmessage.error('error message')
}
</script>

使用elementplus的组件就会自动在根目录下生成下面两个文件

如果想更改这两个文件的位置,可以传入第二个参数,里面指定文件的位置。由于用到了node的东西,所以最好安装下node的ts类型插件,这样编译器不爆红

pnpm i -d @types/node
import { defineconfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// elementplus自动导入
import autoimport from 'unplugin-auto-import/vite'
import components from 'unplugin-vue-components/vite'
import { elementplusresolver } from 'unplugin-vue-components/resolvers'
// 引入node的url模块
import { fileurltopath } from 'node:url'
// https://vitejs.dev/config/
export default defineconfig({
  plugins: [
    vue(),
    // 自动导入elementplus组件
    autoimport({
      resolvers: [elementplusresolver()],
      // 指定ts类型文件位置
      dts: fileurltopath(new url('./types/auto-imports.d.ts', import.meta.url)),
    }),
    // 自动注册elementplus组件
    components({
      resolvers: [elementplusresolver()],
      // 指定ts类型文件位置
      dts: fileurltopath(new url('./types/components.d.ts', import.meta.url)),
    }),
  ],
})

现在文件就生成在了types文件夹内了

按需自动引入图标

1. 首先安装依赖

pnpm install @element-plus/icons-vue
pnpm i -d unplugin-icons unplugin-auto-import

2.  vite.config.ts进行修改

import { defineconfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// elementplus自动导入
import autoimport from 'unplugin-auto-import/vite'
import components from 'unplugin-vue-components/vite'
import { elementplusresolver } from 'unplugin-vue-components/resolvers'
// 引入node的url模块
import { fileurltopath } from 'node:url'
//  elementplus的icon自动导入
import icons from 'unplugin-icons/vite'
import iconsresolver from 'unplugin-icons/resolver'
// https://vitejs.dev/config/
export default defineconfig({
  plugins: [
    vue(),
    // 自动导入elementplus组件
    autoimport({
      resolvers: [
        elementplusresolver(),
        // 自动导入图标组件
        iconsresolver({
          prefix: 'icon',
        }),
      ],
      // 指定ts类型文件位置
      dts: fileurltopath(new url('./types/auto-imports.d.ts', import.meta.url)),
    }),
    // 自动注册elementplus组件
    components({
      resolvers: [
        elementplusresolver(),
        // 自动注册图标组件
        iconsresolver({
          enabledcollections: ['ep'],
        }),
      ],
      // 指定ts类型文件位置
      dts: fileurltopath(new url('./types/components.d.ts', import.meta.url)),
    }),
    // 自动安装图标
    icons({
      autoinstall: true,
    }),
  ],
})

然后就可以进行测试了

<template>
  <div>
    <el-icon color="pink">
      <edit />
    </el-icon>
  </div>
</template>

会发现图标并没有显示出来

其实是换组件名了,可以看下下面的文件,改成对应的组件名就可以显示了

但是有时候,其他组件想用图标,应该怎么写呢?其实正常引入就可以了

<template>
  <div>
    <el-icon color="pink">
      <iepedit />
    </el-icon>
    <el-button type="primary" :icon="edit" circle />
  </div>
</template>
<script lang="ts" setup>
import { edit } from '@element-plus/icons-vue'
</script>

到此这篇关于elementplus组件与图标按需自动引入的实现方法的文章就介绍到这了,更多相关elementplus按需自动引入内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com