From fb60a6b7eeced6905af8722fc6d21ac0c3bd07da Mon Sep 17 00:00:00 2001 From: Azure <983547216@qq.com> Date: Mon, 8 Jun 2026 08:27:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8E=BB=E9=99=A4=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E5=BC=95=E7=94=A8naive-ui=E7=BB=84=E4=BB=B6=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E8=87=AA=E5=8A=A8=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + pnpm-lock.yaml | 112 +++++++++++++++++++++++++++++++ src/assets/naiveUi/useNaiveUi.ts | 7 -- src/layouts/AuthPageLayout.vue | 2 +- src/main.ts | 2 - vite.config.ts | 14 +++- 6 files changed, 127 insertions(+), 12 deletions(-) delete mode 100644 src/assets/naiveUi/useNaiveUi.ts diff --git a/package.json b/package.json index 6fbb1cc..91ab699 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,8 @@ "oxfmt": "^0.45.0", "tailwindcss": "^4.3.0", "typescript": "~6.0.0", + "unplugin-auto-import": "^21.0.0", + "unplugin-vue-components": "^32.1.0", "vite": "^8.0.8", "vite-plugin-vue-devtools": "^8.1.1", "vue-tsc": "^3.2.6" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e8f84f..1f0b53d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -54,6 +54,12 @@ importers: typescript: specifier: ~6.0.0 version: 6.0.3 + unplugin-auto-import: + specifier: ^21.0.0 + version: 21.0.0 + unplugin-vue-components: + specifier: ^32.1.0 + version: 32.1.0(vue@3.5.35(typescript@6.0.3)) vite: specifier: ^8.0.8 version: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) @@ -600,6 +606,9 @@ packages: '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/jsesc@2.5.1': resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} @@ -876,9 +885,16 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + evtd@0.2.4: resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==} @@ -949,6 +965,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -1241,6 +1260,9 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + superjson@2.2.6: resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} engines: {node: '>=16'} @@ -1281,10 +1303,40 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + unimport@5.7.0: + resolution: {integrity: sha512-njnL6sp8lEA8QQbZrt+52p/g4X0rw3bnGGmUcJnt1jeG8+iiqO779aGz0PirCtydAIVcuTBRlJ52F0u46z309Q==} + engines: {node: '>=18.12.0'} + + unplugin-auto-import@21.0.0: + resolution: {integrity: sha512-vWuC8SwqJmxZFYwPojhOhOXDb5xFhNNcEVb9K/RFkyk/3VnfaOjzitWN7v+8DEKpMjSsY2AEGXNgt6I0yQrhRQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@nuxt/kit': ^4.0.0 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + unplugin-utils@0.3.1: resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} engines: {node: '>=20.19.0'} + unplugin-vue-components@32.1.0: + resolution: {integrity: sha512-YiUkSxuRjab18XFOrX5VsIxXzccrfmHVGsGeJgSgklb829DQmCy9E4vvDUE4tuvZZdxyFJZX0Oc4TPnnxiiMyg==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@nuxt/kit': ^3.2.2 || ^4.0.0 + vue: ^3.0.0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} + unplugin@3.0.0: resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1900,6 +1952,8 @@ snapshots: tslib: 2.8.1 optional: true + '@types/estree@1.0.9': {} + '@types/jsesc@2.5.1': {} '@types/lodash-es@4.17.12': @@ -2222,8 +2276,14 @@ snapshots: escalade@3.2.0: {} + escape-string-regexp@5.0.0: {} + estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + evtd@0.2.4: {} exsolve@1.0.8: {} @@ -2265,6 +2325,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + jsesc@3.1.0: {} json-parse-even-better-errors@4.0.0: {} @@ -2544,6 +2606,10 @@ snapshots: speakingurl@14.0.1: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + superjson@2.2.6: dependencies: copy-anything: 4.0.5 @@ -2572,11 +2638,57 @@ snapshots: undici-types@7.16.0: {} + unimport@5.7.0: + dependencies: + acorn: 8.16.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + pathe: 2.0.3 + picomatch: 4.0.4 + pkg-types: 2.3.1 + scule: 1.3.0 + strip-literal: 3.1.0 + tinyglobby: 0.2.17 + unplugin: 2.3.11 + unplugin-utils: 0.3.1 + + unplugin-auto-import@21.0.0: + dependencies: + local-pkg: 1.2.1 + magic-string: 0.30.21 + picomatch: 4.0.4 + unimport: 5.7.0 + unplugin: 2.3.11 + unplugin-utils: 0.3.1 + unplugin-utils@0.3.1: dependencies: pathe: 2.0.3 picomatch: 4.0.4 + unplugin-vue-components@32.1.0(vue@3.5.35(typescript@6.0.3)): + dependencies: + chokidar: 5.0.0 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + obug: 2.1.1 + picomatch: 4.0.4 + tinyglobby: 0.2.17 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 + vue: 3.5.35(typescript@6.0.3) + + unplugin@2.3.11: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.16.0 + picomatch: 4.0.4 + webpack-virtual-modules: 0.6.2 + unplugin@3.0.0: dependencies: '@jridgewell/remapping': 2.3.5 diff --git a/src/assets/naiveUi/useNaiveUi.ts b/src/assets/naiveUi/useNaiveUi.ts deleted file mode 100644 index db0eb69..0000000 --- a/src/assets/naiveUi/useNaiveUi.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { create, NButton, NConfigProvider } from 'naive-ui' - -const useNaiveUi = create({ - components: [NButton, NConfigProvider] -}) - -export default useNaiveUi diff --git a/src/layouts/AuthPageLayout.vue b/src/layouts/AuthPageLayout.vue index ff925b9..45ab4f4 100644 --- a/src/layouts/AuthPageLayout.vue +++ b/src/layouts/AuthPageLayout.vue @@ -1,5 +1,5 @@ diff --git a/src/main.ts b/src/main.ts index e236db1..4b698a0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,12 +5,10 @@ import { initPinia } from './stores' import App from './App.vue' import router from './router' -import useNaiveUi from './assets/naiveUi/useNaiveUi.ts' const app = createApp(App) app.use(initPinia()) app.use(router) -app.use(useNaiveUi) app.mount('#app') diff --git a/vite.config.ts b/vite.config.ts index b5553e7..8588d05 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,7 +4,11 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import vueDevTools from 'vite-plugin-vue-devtools' -import tailwindcss from '@tailwindcss/vite' +import tailwindcss from '@tailwindcss/vite' + +import AutoImport from 'unplugin-auto-import/vite' +import { NaiveUiResolver } from 'unplugin-vue-components/resolvers' +import Components from 'unplugin-vue-components/vite' // https://vite.dev/config/ export default defineConfig({ @@ -12,7 +16,13 @@ export default defineConfig({ vue(), vueJsx(), vueDevTools(), - tailwindcss() + tailwindcss(), + AutoImport({ + imports: [{ 'native-ui': ['useDialog', 'useMessage', 'useNotification', 'useLoadingBar'] }] + }), + Components({ + resolvers: [NaiveUiResolver()] + }) ], resolve: { alias: {