mirror of
				https://github.com/soybeanjs/soybean-admin.git
				synced 2025-11-04 15:53:43 +08:00 
			
		
		
		
	feat(projects): 插件方式按需引入naiveUI
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
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 { FileSystemIconLoader } from 'unplugin-icons/loaders';
 | 
			
		||||
 | 
			
		||||
export default (srcPath: string) => {
 | 
			
		||||
@@ -15,7 +16,7 @@ export default (srcPath: string) => {
 | 
			
		||||
    }),
 | 
			
		||||
    Components({
 | 
			
		||||
      dts: true,
 | 
			
		||||
      resolvers: [IconsResolver({ customCollections: ['custom'], componentPrefix: 'icon' })]
 | 
			
		||||
      resolvers: [NaiveUiResolver(), IconsResolver({ customCollections: ['custom'], componentPrefix: 'icon' })]
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -13,9 +13,17 @@ declare module 'vue' {
 | 
			
		||||
    IconAntDesignCloseOutlined: typeof import('~icons/ant-design/close-outlined')['default']
 | 
			
		||||
    IconAntDesignEnterOutlined: typeof import('~icons/ant-design/enter-outlined')['default']
 | 
			
		||||
    IconAntDesignSettingOutlined: typeof import('~icons/ant-design/setting-outlined')['default']
 | 
			
		||||
    IconCustomActivity: typeof import('~icons/custom/activity')['default']
 | 
			
		||||
    IconCustomAvatar: typeof import('~icons/custom/avatar')['default']
 | 
			
		||||
    IconCustomBanner: typeof import('~icons/custom/banner')['default']
 | 
			
		||||
    IconCustomCast: typeof import('~icons/custom/cast')['default']
 | 
			
		||||
    IconCustomEmptyData: typeof import('~icons/custom/empty-data')['default']
 | 
			
		||||
    IconCustomLogo: typeof import('~icons/custom/logo')['default']
 | 
			
		||||
    IconCustomLogoFill: typeof import('~icons/custom/logo-fill')['default']
 | 
			
		||||
    IconCustomNetworkError: typeof import('~icons/custom/network-error')['default']
 | 
			
		||||
    IconCustomNoPermission: typeof import('~icons/custom/no-permission')['default']
 | 
			
		||||
    IconCustomNotFound: typeof import('~icons/custom/not-found')['default']
 | 
			
		||||
    IconCustomServiceError: typeof import('~icons/custom/service-error')['default']
 | 
			
		||||
    IconGridiconsFullscreen: typeof import('~icons/gridicons/fullscreen')['default']
 | 
			
		||||
    IconGridiconsFullscreenExit: typeof import('~icons/gridicons/fullscreen-exit')['default']
 | 
			
		||||
    IconIcOutlineCheck: typeof import('~icons/ic/outline-check')['default']
 | 
			
		||||
@@ -29,6 +37,7 @@ declare module 'vue' {
 | 
			
		||||
    IconMdiPin: typeof import('~icons/mdi/pin')['default']
 | 
			
		||||
    IconMdiPinOff: typeof import('~icons/mdi/pin-off')['default']
 | 
			
		||||
    IconMdiRefresh: typeof import('~icons/mdi/refresh')['default']
 | 
			
		||||
    IconMdiWechat: typeof import('~icons/mdi/wechat')['default']
 | 
			
		||||
    IconMdiWhiteBalanceSunny: typeof import('~icons/mdi/white-balance-sunny')['default']
 | 
			
		||||
    IconPhCaretDoubleLeftBold: typeof import('~icons/ph/caret-double-left-bold')['default']
 | 
			
		||||
    IconPhCaretDoubleRightBold: typeof import('~icons/ph/caret-double-right-bold')['default']
 | 
			
		||||
@@ -38,6 +47,51 @@ declare module 'vue' {
 | 
			
		||||
    LoadingEmptyWrapper: typeof import('./src/components/business/LoadingEmptyWrapper.vue')['default']
 | 
			
		||||
    LoginAgreement: typeof import('./src/components/business/LoginAgreement.vue')['default']
 | 
			
		||||
    NaiveProvider: typeof import('./src/components/common/NaiveProvider.vue')['default']
 | 
			
		||||
    NBreadcrumb: typeof import('naive-ui')['NBreadcrumb']
 | 
			
		||||
    NBreadcrumbItem: typeof import('naive-ui')['NBreadcrumbItem']
 | 
			
		||||
    NButton: typeof import('naive-ui')['NButton']
 | 
			
		||||
    NCard: typeof import('naive-ui')['NCard']
 | 
			
		||||
    NCheckbox: typeof import('naive-ui')['NCheckbox']
 | 
			
		||||
    NColorPicker: typeof import('naive-ui')['NColorPicker']
 | 
			
		||||
    NConfigProvider: typeof import('naive-ui')['NConfigProvider']
 | 
			
		||||
    NDataTable: typeof import('naive-ui')['NDataTable']
 | 
			
		||||
    NDescriptions: typeof import('naive-ui')['NDescriptions']
 | 
			
		||||
    NDescriptionsItem: typeof import('naive-ui')['NDescriptionsItem']
 | 
			
		||||
    NDialogProvider: typeof import('naive-ui')['NDialogProvider']
 | 
			
		||||
    NDivider: typeof import('naive-ui')['NDivider']
 | 
			
		||||
    NDrawer: typeof import('naive-ui')['NDrawer']
 | 
			
		||||
    NDrawerContent: typeof import('naive-ui')['NDrawerContent']
 | 
			
		||||
    NDropdown: typeof import('naive-ui')['NDropdown']
 | 
			
		||||
    NEmpty: typeof import('naive-ui')['NEmpty']
 | 
			
		||||
    NForm: typeof import('naive-ui')['NForm']
 | 
			
		||||
    NFormItem: typeof import('naive-ui')['NFormItem']
 | 
			
		||||
    NGradientText: typeof import('naive-ui')['NGradientText']
 | 
			
		||||
    NGrid: typeof import('naive-ui')['NGrid']
 | 
			
		||||
    NGridItem: typeof import('naive-ui')['NGridItem']
 | 
			
		||||
    NInput: typeof import('naive-ui')['NInput']
 | 
			
		||||
    NInputGroup: typeof import('naive-ui')['NInputGroup']
 | 
			
		||||
    NInputNumber: typeof import('naive-ui')['NInputNumber']
 | 
			
		||||
    NList: typeof import('naive-ui')['NList']
 | 
			
		||||
    NListItem: typeof import('naive-ui')['NListItem']
 | 
			
		||||
    NLoadingBarProvider: typeof import('naive-ui')['NLoadingBarProvider']
 | 
			
		||||
    NMenu: typeof import('naive-ui')['NMenu']
 | 
			
		||||
    NMessageProvider: typeof import('naive-ui')['NMessageProvider']
 | 
			
		||||
    NModal: typeof import('naive-ui')['NModal']
 | 
			
		||||
    NNotificationProvider: typeof import('naive-ui')['NNotificationProvider']
 | 
			
		||||
    NPopover: typeof import('naive-ui')['NPopover']
 | 
			
		||||
    NScrollbar: typeof import('naive-ui')['NScrollbar']
 | 
			
		||||
    NSelect: typeof import('naive-ui')['NSelect']
 | 
			
		||||
    NSpace: typeof import('naive-ui')['NSpace']
 | 
			
		||||
    NSpin: typeof import('naive-ui')['NSpin']
 | 
			
		||||
    NStatistic: typeof import('naive-ui')['NStatistic']
 | 
			
		||||
    NSwitch: typeof import('naive-ui')['NSwitch']
 | 
			
		||||
    NTabPane: typeof import('naive-ui')['NTabPane']
 | 
			
		||||
    NTabs: typeof import('naive-ui')['NTabs']
 | 
			
		||||
    NTag: typeof import('naive-ui')['NTag']
 | 
			
		||||
    NThing: typeof import('naive-ui')['NThing']
 | 
			
		||||
    NTimeline: typeof import('naive-ui')['NTimeline']
 | 
			
		||||
    NTimelineItem: typeof import('naive-ui')['NTimelineItem']
 | 
			
		||||
    NTooltip: typeof import('naive-ui')['NTooltip']
 | 
			
		||||
    SystemLogo: typeof import('./src/components/common/SystemLogo.vue')['default']
 | 
			
		||||
    WebSiteLink: typeof import('./src/components/custom/WebSiteLink.vue')['default']
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
import { createApp } from 'vue';
 | 
			
		||||
import { setupAssets, setupNaiveUI } from '@/plugins';
 | 
			
		||||
import { setupAssets } from '@/plugins';
 | 
			
		||||
import { setupRouter } from '@/router';
 | 
			
		||||
import { setupStore } from '@/store';
 | 
			
		||||
import { setupDirectives } from '@/directives';
 | 
			
		||||
@@ -17,9 +17,6 @@ async function setupApp() {
 | 
			
		||||
  // 挂载自定义vue指令
 | 
			
		||||
  setupDirectives(app);
 | 
			
		||||
 | 
			
		||||
  // 按需引入naiveUI
 | 
			
		||||
  setupNaiveUI(app);
 | 
			
		||||
 | 
			
		||||
  // 挂载路由
 | 
			
		||||
  await setupRouter(app);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,3 @@
 | 
			
		||||
import setupAssets from './assets';
 | 
			
		||||
import setupNaiveUI from './naive';
 | 
			
		||||
 | 
			
		||||
export { setupAssets, setupNaiveUI };
 | 
			
		||||
export { setupAssets };
 | 
			
		||||
 
 | 
			
		||||
@@ -1,103 +0,0 @@
 | 
			
		||||
import type { App } from 'vue';
 | 
			
		||||
import {
 | 
			
		||||
  create,
 | 
			
		||||
  NBreadcrumb,
 | 
			
		||||
  NBreadcrumbItem,
 | 
			
		||||
  NButton,
 | 
			
		||||
  NCard,
 | 
			
		||||
  NCheckbox,
 | 
			
		||||
  NColorPicker,
 | 
			
		||||
  NConfigProvider,
 | 
			
		||||
  NDataTable,
 | 
			
		||||
  NDescriptions,
 | 
			
		||||
  NDescriptionsItem,
 | 
			
		||||
  NDialogProvider,
 | 
			
		||||
  NDivider,
 | 
			
		||||
  NDrawer,
 | 
			
		||||
  NDrawerContent,
 | 
			
		||||
  NDropdown,
 | 
			
		||||
  NEmpty,
 | 
			
		||||
  NForm,
 | 
			
		||||
  NFormItem,
 | 
			
		||||
  NGradientText,
 | 
			
		||||
  NGrid,
 | 
			
		||||
  NGridItem,
 | 
			
		||||
  NInput,
 | 
			
		||||
  NInputGroup,
 | 
			
		||||
  NInputNumber,
 | 
			
		||||
  NList,
 | 
			
		||||
  NListItem,
 | 
			
		||||
  NLoadingBarProvider,
 | 
			
		||||
  NModal,
 | 
			
		||||
  NMenu,
 | 
			
		||||
  NMessageProvider,
 | 
			
		||||
  NNotificationProvider,
 | 
			
		||||
  NPopover,
 | 
			
		||||
  NScrollbar,
 | 
			
		||||
  NSelect,
 | 
			
		||||
  NSpace,
 | 
			
		||||
  NStatistic,
 | 
			
		||||
  NSwitch,
 | 
			
		||||
  NSpin,
 | 
			
		||||
  NTabs,
 | 
			
		||||
  NTabPane,
 | 
			
		||||
  NTag,
 | 
			
		||||
  NThing,
 | 
			
		||||
  NTimeline,
 | 
			
		||||
  NTimelineItem,
 | 
			
		||||
  NTooltip
 | 
			
		||||
} from 'naive-ui';
 | 
			
		||||
 | 
			
		||||
/** 按需引入naiveUI */
 | 
			
		||||
export default function setupNaiveUI(app: App) {
 | 
			
		||||
  const naive = create({
 | 
			
		||||
    components: [
 | 
			
		||||
      NBreadcrumb,
 | 
			
		||||
      NBreadcrumbItem,
 | 
			
		||||
      NButton,
 | 
			
		||||
      NCard,
 | 
			
		||||
      NCheckbox,
 | 
			
		||||
      NColorPicker,
 | 
			
		||||
      NConfigProvider,
 | 
			
		||||
      NDataTable,
 | 
			
		||||
      NDescriptions,
 | 
			
		||||
      NDescriptionsItem,
 | 
			
		||||
      NDialogProvider,
 | 
			
		||||
      NDivider,
 | 
			
		||||
      NDrawer,
 | 
			
		||||
      NDrawerContent,
 | 
			
		||||
      NDropdown,
 | 
			
		||||
      NEmpty,
 | 
			
		||||
      NForm,
 | 
			
		||||
      NFormItem,
 | 
			
		||||
      NGradientText,
 | 
			
		||||
      NGrid,
 | 
			
		||||
      NGridItem,
 | 
			
		||||
      NInput,
 | 
			
		||||
      NInputGroup,
 | 
			
		||||
      NInputNumber,
 | 
			
		||||
      NList,
 | 
			
		||||
      NListItem,
 | 
			
		||||
      NLoadingBarProvider,
 | 
			
		||||
      NModal,
 | 
			
		||||
      NMenu,
 | 
			
		||||
      NMessageProvider,
 | 
			
		||||
      NNotificationProvider,
 | 
			
		||||
      NPopover,
 | 
			
		||||
      NScrollbar,
 | 
			
		||||
      NSelect,
 | 
			
		||||
      NSpace,
 | 
			
		||||
      NStatistic,
 | 
			
		||||
      NSwitch,
 | 
			
		||||
      NSpin,
 | 
			
		||||
      NTabs,
 | 
			
		||||
      NTabPane,
 | 
			
		||||
      NTag,
 | 
			
		||||
      NThing,
 | 
			
		||||
      NTimeline,
 | 
			
		||||
      NTimelineItem,
 | 
			
		||||
      NTooltip
 | 
			
		||||
    ]
 | 
			
		||||
  });
 | 
			
		||||
  app.use(naive);
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user