按需自动导入

View source
组件、API 和图标按需自动导入,简化代码并提升开发效率。

自动导入组件和 API

通过以下配置,可以实现 vue@vueuse/core 的 API 以及 Element Plus 组件的自动导入。

sh
pnpm add -D unplugin-vue-components unplugin-auto-import
vite.config.ts
import AutoImport from 'unplugin-auto-import/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import Components from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
    AutoImport({
      imports: ['vue', '@vueuse/core'],
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [
        ElementPlusResolver(),
      ],
    }),
  ],
})

自动导入图标

结合 unplugin-icons 可以在项目中方便地使用 Iconify 中的海量图标。

安装图标集

如果只需要使用特定图标集,可以单独安装,例如 ep (Element Plus) 和 maki 图标集。
sh
pnpm add -D @iconify-json/ep @iconify-json/maki

配置 Vite 插件

vite.config.ts 中配置 unplugin-iconsIconsResolverIcons 插件。

vite.config.ts
import AutoImport from 'unplugin-auto-import/vite'
import IconsResolver from 'unplugin-icons/resolver'
import Icons from 'unplugin-icons/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import Components from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
    AutoImport({
      imports: ['vue', '@vueuse/core'],
      resolvers: [
        ElementPlusResolver(),
        IconsResolver({
          prefix: 'icon',
        }),
      ],
    }),
    Components({
      resolvers: [
        ElementPlusResolver(),
        IconsResolver({
          enabledCollections: ['ep', 'maki'],
        }),
      ],
    }),
    Icons({
      autoInstall: true,
    }),
  ],
})

tsconfig.json 中添加类型

为了让 TypeScript 识别通过 ~icons/... 导入的图标类型,需要添加相应的类型声明。
tsconfig.json
{
  "compilerOptions": {
    "types": [
      "unplugin-icons/types/vue"
    ]
  }
}

使用图标

配置完成后,可以直接在模板中使用 <icon-ep-user-filled /> 这样的组件,或者通过 import IconMakiAnimalShelter from '~icons/maki/animal-shelter' 的方式在脚本中导入图标。

Copyright © 2024 - 2025 YiXuan - MIT License