| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- import process from 'node:process';
 
- import path from 'node:path';
 
- import type { PluginOption } from 'vite';
 
- import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
 
- import Icons from 'unplugin-icons/vite';
 
- import IconsResolver from 'unplugin-icons/resolver';
 
- import Components from 'unplugin-vue-components/vite';
 
- import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';
 
- import { ProNaiveUIResolver } from 'pro-naive-ui-resolver';
 
- import { FileSystemIconLoader } from 'unplugin-icons/loaders';
 
- export function setupUnplugin(viteEnv: Env.ImportMeta) {
 
-   const { VITE_ICON_PREFIX, VITE_ICON_LOCAL_PREFIX } = viteEnv;
 
-   const localIconPath = path.join(process.cwd(), 'src/assets/svg-icon');
 
-   /** The name of the local icon collection */
 
-   const collectionName = VITE_ICON_LOCAL_PREFIX.replace(`${VITE_ICON_PREFIX}-`, '');
 
-   const plugins: PluginOption[] = [
 
-     Icons({
 
-       compiler: 'vue3',
 
-       customCollections: {
 
-         [collectionName]: FileSystemIconLoader(localIconPath, svg =>
 
-           svg.replace(/^<svg\s/, '<svg width="1em" height="1em" ')
 
-         )
 
-       },
 
-       scale: 1,
 
-       defaultClass: 'inline-block'
 
-     }),
 
-     Components({
 
-       dts: 'src/typings/components.d.ts',
 
-       types: [{ from: 'vue-router', names: ['RouterLink', 'RouterView'] }],
 
-       resolvers: [
 
-         NaiveUiResolver(),
 
-         ProNaiveUIResolver(),
 
-         IconsResolver({ customCollections: [collectionName], componentPrefix: VITE_ICON_PREFIX })
 
-       ]
 
-     }),
 
-     createSvgIconsPlugin({
 
-       iconDirs: [localIconPath],
 
-       symbolId: `${VITE_ICON_LOCAL_PREFIX}-[dir]-[name]`,
 
-       inject: 'body-last',
 
-       customDomId: '__SVG_ICON_LOCAL__'
 
-     })
 
-   ];
 
-   return plugins;
 
- }
 
 
  |