From 2b29a458a6b3565e9314b9dd85d6069278e81ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?mac=C2=B7ufutx?= Date: Wed, 11 Jun 2025 17:09:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=2020250611=20=E8=87=AA=E5=8A=A8=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E7=BB=84=E4=BB=B6=EF=BC=8C=E5=87=8F=E5=B0=91=E6=89=8B?= =?UTF-8?q?=E5=8A=A8=20import=20=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto-imports.d.ts | 76 +++++++++++++++++++++++++++++++++++++++++++++++ components.d.ts | 16 ++++++++++ package.json | 7 +++-- src/main.ts | 8 ++--- tsconfig.app.json | 4 +-- vite.config.ts | 9 +++++- 6 files changed, 111 insertions(+), 9 deletions(-) create mode 100644 auto-imports.d.ts create mode 100644 components.d.ts diff --git a/auto-imports.d.ts b/auto-imports.d.ts new file mode 100644 index 0000000..03983a3 --- /dev/null +++ b/auto-imports.d.ts @@ -0,0 +1,76 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +// biome-ignore lint: disable +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const computed: typeof import('vue')['computed'] + const createApp: typeof import('vue')['createApp'] + const customRef: typeof import('vue')['customRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const effectScope: typeof import('vue')['effectScope'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] + const provide: typeof import('vue')['provide'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const unref: typeof import('vue')['unref'] + const useAttrs: typeof import('vue')['useAttrs'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVars: typeof import('vue')['useCssVars'] + const useId: typeof import('vue')['useId'] + const useLink: typeof import('vue-router')['useLink'] + const useModel: typeof import('vue')['useModel'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useSlots: typeof import('vue')['useSlots'] + const useTemplateRef: typeof import('vue')['useTemplateRef'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + import('vue') +} diff --git a/components.d.ts b/components.d.ts new file mode 100644 index 0000000..d5b6134 --- /dev/null +++ b/components.d.ts @@ -0,0 +1,16 @@ +/* eslint-disable */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +// biome-ignore lint: disable +export {} + +/* prettier-ignore */ +declare module 'vue' { + export interface GlobalComponents { + HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Test: typeof import('./src/components/Test.vue')['default'] + } +} diff --git a/package.json b/package.json index 08611c4..8bfea47 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "my-website", "private": true, - "version": "0.0.0", + "version": "0.0.1", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host --port 9527", "build": "vue-tsc -b && vite build", "preview": "vite preview", "audit": "npm audit --fix", @@ -49,8 +49,11 @@ "postcss-px-to-viewport-8-plugin": "^1.2.5", "prettier": "^3.5.3", "typescript": "5.1.6", + "unplugin-auto-import": "^19.3.0", + "unplugin-vue-components": "^28.7.0", "vite": "^4.4.9", "vite-plugin-imagemin": "^0.6.1", + "vite-ssg": "^27.0.1", "vue-tsc": "1.8.14" } } diff --git a/src/main.ts b/src/main.ts index f73434a..f72708e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -10,9 +10,9 @@ export const createApp = ViteSSG( { history: createWebHistory(), routes - }, - ctx => { - // 确保路由插件被安装 - ctx.app.use(ctx.router) // 关键修改点 } + // _ctx => { + // // 确保路由插件被安装 + // // ctx.app.use(ctx.router) // 关键修改点 + // } ) diff --git a/tsconfig.app.json b/tsconfig.app.json index f817746..b2c4573 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -1,7 +1,7 @@ { "extends": "@vue/tsconfig/tsconfig.dom.json", "compilerOptions": { - "baseUrl": ".", + "baseUrl": "./", "lib": [ "ES2022", "DOM" @@ -9,7 +9,7 @@ // 关键:添加 DOM 类型库 "paths": { "@/*": [ - "./src/*" + "src/*" ] // 添加路径别名 }, diff --git a/vite.config.ts b/vite.config.ts index fa9fe6a..45b0de6 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,10 +3,17 @@ import vue from '@vitejs/plugin-vue' import path from 'path' // 引入 path 模块 import viteImagemin from 'vite-plugin-imagemin' // 新插件 - +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' export default defineConfig({ plugins: [ vue(), + AutoImport({ + imports: ['vue', 'vue-router'] // 自动导入 Vue、Vue Router API + }), + Components({ + dirs: ['src/components'] // 自动扫描组件目录 + }), viteImagemin({ // 基础压缩配置(可根据需求扩展) gifsicle: { optimizationLevel: 7 },