通过以下配置,可以实现 vue、@vueuse/core 的 API 以及 Element Plus 组件的自动导入。
pnpm add -D unplugin-vue-components unplugin-auto-import
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 图标集。pnpm add -D @iconify-json/ep @iconify-json/maki
在 vite.config.ts 中配置 unplugin-icons 的 IconsResolver 和 Icons 插件。
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 中添加类型~icons/... 导入的图标类型,需要添加相应的类型声明。{
  "compilerOptions": {
    "types": [
      "unplugin-icons/types/vue"
    ]
  }
}
配置完成后,可以直接在模板中使用 <icon-ep-user-filled /> 这样的组件,或者通过 import IconMakiAnimalShelter from '~icons/maki/animal-shelter' 的方式在脚本中导入图标。