vue3 + vite + element-plus按需自动引入搭建项目(三)

vue3 + vite + element-plus按需自动引入搭建项目(三)

编程文章jaq1232025-04-30 10:53:429A+A-

使用element-plus的图标的时候,需要安装资源;

安装element-plus的图片库:

//在当前项目文件夹下 
npm install @element-plus/icons-vue


安装element-plus图片库自动导入的两款插件unplugin-icons 和 unplugin-auto-import:

//在当前项目文件夹下 
npm install -D unplugin-icons unplugin-auto-import

在项目里的vite.config.ts配置文件配置这两款插件:

配置前:

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 { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
 plugins: [vue(),
 AutoImport({
 resolvers: [
 // 自动导入element-plus组件
 ElementPlusResolver(),
    ],
  }),
 Components({
 resolvers: [
 // 自动导入element-plus组件
 ElementPlusResolver(),
    ],
  }),]
})

配置后:

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 { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

//引入插件
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(),
  AutoImport({
    resolvers: [
      // 自动导入element-plus组件
      ElementPlusResolver(),

      // 自动导入图标组件
      IconsResolver({
        prefix: 'Icon',
      }),
    ],
  }),
  Components({
    resolvers: [
      // 自动导入element-plus组件
      ElementPlusResolver(),
      // 自动注册图标组件
      IconsResolver({
        enabledCollections: ['ep'],
      }),
    ],
  }),
  // 自动导入图标组件
  Icons({
    autoInstall: true,
  }),]
})

打开element-plus组件使用说明页面面:


复制选中的代码,粘贴到自己项目中的App.vue文件里面;

复制前:

<script setup>
</script>

<template>
  <div>
    <el-row 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">Danger</el-button>
    </el-row>

    <a href="https://vitejs.dev" target="_blank">
      <img src="/vite.svg" class="logo" alt="Vite logo" />
    </a>
    <a href="https://vuejs.org/" target="_blank">
      <img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
    </a>
  </div>
  <!-- 使用路由的方式加载 -->
  <router-view />
</template>

<style scoped>
.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
  transition: filter 300ms;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

复制后:

<script setup>
</script>

<template>
  <div>
    <!-- 使用 el-icon 为 SVG 图标提供属性 -->
    <el-icon :size="size" :color="color">
      <Edit />
    </el-icon>
    <!-- 或者独立使用它,不从父级获取属性 -->
    <Edit />
    <el-row 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">Danger</el-button>
    </el-row>

    <a href="https://vitejs.dev" target="_blank">
      <img src="/vite.svg" class="logo" alt="Vite logo" />
    </a>
    <a href="https://vuejs.org/" target="_blank">
      <img src="./assets/vue.svg" class="logo vue" alt="Vue logo" />
    </a>
  </div>
  <!-- 使用路由的方式加载 -->
  <router-view />
</template>

<style scoped>
.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
  transition: filter 300ms;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

改造完之后,运行项目:

npm run dev

界面怎么没有图标呢?不会出错了吧!!!

出现这种情况是因为,按需自动引入的写法要和其它引入方式有区别;要在图标的标签前面添加IEp前缀,项目中的代码做如下修改:

		
<el-icon :size="size" :color="color">
  <IEpEdit />
</el-icon>
<!-- 或者独立使用它,不从父级获取属性 -->
<IEpEdit />

再次运行项目:


界面上已经可以看到图标了,大功告成!!!

点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21