hookehuyr

refactor(vite): 使用 unplugin-auto-import 和 unplugin-vue-components 自动导入组件和 API

移除手动导入和注册 Vant 组件的代码,简化 main.js 文件。新增自动导入配置,提升开发效率和代码可维护性。
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
20 "autoprefixer": "^10.4.19", 20 "autoprefixer": "^10.4.19",
21 "postcss": "^8.4.35", 21 "postcss": "^8.4.35",
22 "tailwindcss": "^3.4.1", 22 "tailwindcss": "^3.4.1",
23 + "unplugin-auto-import": "^19.1.1",
24 + "unplugin-vue-components": "^28.4.1",
23 "vite": "^6.2.0" 25 "vite": "^6.2.0"
24 } 26 }
25 }, 27 },
...@@ -1437,6 +1439,18 @@ ...@@ -1437,6 +1439,18 @@
1437 "vue": "^3.5.0" 1439 "vue": "^3.5.0"
1438 } 1440 }
1439 }, 1441 },
1442 + "node_modules/acorn": {
1443 + "version": "8.14.1",
1444 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
1445 + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
1446 + "dev": true,
1447 + "bin": {
1448 + "acorn": "bin/acorn"
1449 + },
1450 + "engines": {
1451 + "node": ">=0.4.0"
1452 + }
1453 + },
1440 "node_modules/ansi-regex": { 1454 "node_modules/ansi-regex": {
1441 "version": "6.1.0", 1455 "version": "6.1.0",
1442 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 1456 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
...@@ -1686,6 +1700,12 @@ ...@@ -1686,6 +1700,12 @@
1686 "node": ">= 6" 1700 "node": ">= 6"
1687 } 1701 }
1688 }, 1702 },
1703 + "node_modules/confbox": {
1704 + "version": "0.2.1",
1705 + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.1.tgz",
1706 + "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==",
1707 + "dev": true
1708 + },
1689 "node_modules/convert-source-map": { 1709 "node_modules/convert-source-map": {
1690 "version": "2.0.0", 1710 "version": "2.0.0",
1691 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 1711 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
...@@ -1830,11 +1850,29 @@ ...@@ -1830,11 +1850,29 @@
1830 "node": ">=6" 1850 "node": ">=6"
1831 } 1851 }
1832 }, 1852 },
1853 + "node_modules/escape-string-regexp": {
1854 + "version": "5.0.0",
1855 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
1856 + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
1857 + "dev": true,
1858 + "engines": {
1859 + "node": ">=12"
1860 + },
1861 + "funding": {
1862 + "url": "https://github.com/sponsors/sindresorhus"
1863 + }
1864 + },
1833 "node_modules/estree-walker": { 1865 "node_modules/estree-walker": {
1834 "version": "2.0.2", 1866 "version": "2.0.2",
1835 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1867 "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1836 "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 1868 "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1837 }, 1869 },
1870 + "node_modules/exsolve": {
1871 + "version": "1.0.4",
1872 + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.4.tgz",
1873 + "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==",
1874 + "dev": true
1875 + },
1838 "node_modules/fast-glob": { 1876 "node_modules/fast-glob": {
1839 "version": "3.3.3", 1877 "version": "3.3.3",
1840 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 1878 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
...@@ -2139,6 +2177,23 @@ ...@@ -2139,6 +2177,23 @@
2139 "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 2177 "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
2140 "dev": true 2178 "dev": true
2141 }, 2179 },
2180 + "node_modules/local-pkg": {
2181 + "version": "1.1.1",
2182 + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz",
2183 + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==",
2184 + "dev": true,
2185 + "dependencies": {
2186 + "mlly": "^1.7.4",
2187 + "pkg-types": "^2.0.1",
2188 + "quansync": "^0.2.8"
2189 + },
2190 + "engines": {
2191 + "node": ">=14"
2192 + },
2193 + "funding": {
2194 + "url": "https://github.com/sponsors/antfu"
2195 + }
2196 + },
2142 "node_modules/lru-cache": { 2197 "node_modules/lru-cache": {
2143 "version": "10.4.3", 2198 "version": "10.4.3",
2144 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", 2199 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
...@@ -2199,6 +2254,35 @@ ...@@ -2199,6 +2254,35 @@
2199 "node": ">=16 || 14 >=14.17" 2254 "node": ">=16 || 14 >=14.17"
2200 } 2255 }
2201 }, 2256 },
2257 + "node_modules/mlly": {
2258 + "version": "1.7.4",
2259 + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
2260 + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
2261 + "dev": true,
2262 + "dependencies": {
2263 + "acorn": "^8.14.0",
2264 + "pathe": "^2.0.1",
2265 + "pkg-types": "^1.3.0",
2266 + "ufo": "^1.5.4"
2267 + }
2268 + },
2269 + "node_modules/mlly/node_modules/confbox": {
2270 + "version": "0.1.8",
2271 + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
2272 + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
2273 + "dev": true
2274 + },
2275 + "node_modules/mlly/node_modules/pkg-types": {
2276 + "version": "1.3.1",
2277 + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
2278 + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
2279 + "dev": true,
2280 + "dependencies": {
2281 + "confbox": "^0.1.8",
2282 + "mlly": "^1.7.4",
2283 + "pathe": "^2.0.1"
2284 + }
2285 + },
2202 "node_modules/ms": { 2286 "node_modules/ms": {
2203 "version": "2.1.3", 2287 "version": "2.1.3",
2204 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2288 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
...@@ -2312,6 +2396,12 @@ ...@@ -2312,6 +2396,12 @@
2312 "url": "https://github.com/sponsors/isaacs" 2396 "url": "https://github.com/sponsors/isaacs"
2313 } 2397 }
2314 }, 2398 },
2399 + "node_modules/pathe": {
2400 + "version": "2.0.3",
2401 + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
2402 + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
2403 + "dev": true
2404 + },
2315 "node_modules/picocolors": { 2405 "node_modules/picocolors": {
2316 "version": "1.1.1", 2406 "version": "1.1.1",
2317 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 2407 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
...@@ -2347,6 +2437,17 @@ ...@@ -2347,6 +2437,17 @@
2347 "node": ">= 6" 2437 "node": ">= 6"
2348 } 2438 }
2349 }, 2439 },
2440 + "node_modules/pkg-types": {
2441 + "version": "2.1.0",
2442 + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz",
2443 + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==",
2444 + "dev": true,
2445 + "dependencies": {
2446 + "confbox": "^0.2.1",
2447 + "exsolve": "^1.0.1",
2448 + "pathe": "^2.0.3"
2449 + }
2450 + },
2350 "node_modules/postcss": { 2451 "node_modules/postcss": {
2351 "version": "8.4.35", 2452 "version": "8.4.35",
2352 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", 2453 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
...@@ -2502,6 +2603,22 @@ ...@@ -2502,6 +2603,22 @@
2502 "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 2603 "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
2503 "dev": true 2604 "dev": true
2504 }, 2605 },
2606 + "node_modules/quansync": {
2607 + "version": "0.2.10",
2608 + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz",
2609 + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==",
2610 + "dev": true,
2611 + "funding": [
2612 + {
2613 + "type": "individual",
2614 + "url": "https://github.com/sponsors/antfu"
2615 + },
2616 + {
2617 + "type": "individual",
2618 + "url": "https://github.com/sponsors/sxzz"
2619 + }
2620 + ]
2621 + },
2505 "node_modules/queue-microtask": { 2622 "node_modules/queue-microtask": {
2506 "version": "1.2.3", 2623 "version": "1.2.3",
2507 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2624 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
...@@ -2634,6 +2751,12 @@ ...@@ -2634,6 +2751,12 @@
2634 "queue-microtask": "^1.2.2" 2751 "queue-microtask": "^1.2.2"
2635 } 2752 }
2636 }, 2753 },
2754 + "node_modules/scule": {
2755 + "version": "1.3.0",
2756 + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz",
2757 + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
2758 + "dev": true
2759 + },
2637 "node_modules/semver": { 2760 "node_modules/semver": {
2638 "version": "6.3.1", 2761 "version": "6.3.1",
2639 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 2762 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
...@@ -2780,6 +2903,24 @@ ...@@ -2780,6 +2903,24 @@
2780 "node": ">=8" 2903 "node": ">=8"
2781 } 2904 }
2782 }, 2905 },
2906 + "node_modules/strip-literal": {
2907 + "version": "3.0.0",
2908 + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz",
2909 + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==",
2910 + "dev": true,
2911 + "dependencies": {
2912 + "js-tokens": "^9.0.1"
2913 + },
2914 + "funding": {
2915 + "url": "https://github.com/sponsors/antfu"
2916 + }
2917 + },
2918 + "node_modules/strip-literal/node_modules/js-tokens": {
2919 + "version": "9.0.1",
2920 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
2921 + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
2922 + "dev": true
2923 + },
2783 "node_modules/sucrase": { 2924 "node_modules/sucrase": {
2784 "version": "3.35.0", 2925 "version": "3.35.0",
2785 "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", 2926 "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
...@@ -2872,6 +3013,48 @@ ...@@ -2872,6 +3013,48 @@
2872 "node": ">=0.8" 3013 "node": ">=0.8"
2873 } 3014 }
2874 }, 3015 },
3016 + "node_modules/tinyglobby": {
3017 + "version": "0.2.12",
3018 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
3019 + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
3020 + "dev": true,
3021 + "dependencies": {
3022 + "fdir": "^6.4.3",
3023 + "picomatch": "^4.0.2"
3024 + },
3025 + "engines": {
3026 + "node": ">=12.0.0"
3027 + },
3028 + "funding": {
3029 + "url": "https://github.com/sponsors/SuperchupuDev"
3030 + }
3031 + },
3032 + "node_modules/tinyglobby/node_modules/fdir": {
3033 + "version": "6.4.3",
3034 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
3035 + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
3036 + "dev": true,
3037 + "peerDependencies": {
3038 + "picomatch": "^3 || ^4"
3039 + },
3040 + "peerDependenciesMeta": {
3041 + "picomatch": {
3042 + "optional": true
3043 + }
3044 + }
3045 + },
3046 + "node_modules/tinyglobby/node_modules/picomatch": {
3047 + "version": "4.0.2",
3048 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
3049 + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
3050 + "dev": true,
3051 + "engines": {
3052 + "node": ">=12"
3053 + },
3054 + "funding": {
3055 + "url": "https://github.com/sponsors/jonschlinkert"
3056 + }
3057 + },
2875 "node_modules/to-regex-range": { 3058 "node_modules/to-regex-range": {
2876 "version": "5.0.1", 3059 "version": "5.0.1",
2877 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3060 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
...@@ -2890,6 +3073,195 @@ ...@@ -2890,6 +3073,195 @@
2890 "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 3073 "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
2891 "dev": true 3074 "dev": true
2892 }, 3075 },
3076 + "node_modules/ufo": {
3077 + "version": "1.5.4",
3078 + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz",
3079 + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==",
3080 + "dev": true
3081 + },
3082 + "node_modules/unimport": {
3083 + "version": "4.1.2",
3084 + "resolved": "https://registry.npmjs.org/unimport/-/unimport-4.1.2.tgz",
3085 + "integrity": "sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==",
3086 + "dev": true,
3087 + "dependencies": {
3088 + "acorn": "^8.14.0",
3089 + "escape-string-regexp": "^5.0.0",
3090 + "estree-walker": "^3.0.3",
3091 + "local-pkg": "^1.0.0",
3092 + "magic-string": "^0.30.17",
3093 + "mlly": "^1.7.4",
3094 + "pathe": "^2.0.3",
3095 + "picomatch": "^4.0.2",
3096 + "pkg-types": "^1.3.1",
3097 + "scule": "^1.3.0",
3098 + "strip-literal": "^3.0.0",
3099 + "tinyglobby": "^0.2.11",
3100 + "unplugin": "^2.2.0",
3101 + "unplugin-utils": "^0.2.4"
3102 + },
3103 + "engines": {
3104 + "node": ">=18.12.0"
3105 + }
3106 + },
3107 + "node_modules/unimport/node_modules/confbox": {
3108 + "version": "0.1.8",
3109 + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
3110 + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
3111 + "dev": true
3112 + },
3113 + "node_modules/unimport/node_modules/estree-walker": {
3114 + "version": "3.0.3",
3115 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
3116 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
3117 + "dev": true,
3118 + "dependencies": {
3119 + "@types/estree": "^1.0.0"
3120 + }
3121 + },
3122 + "node_modules/unimport/node_modules/picomatch": {
3123 + "version": "4.0.2",
3124 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
3125 + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
3126 + "dev": true,
3127 + "engines": {
3128 + "node": ">=12"
3129 + },
3130 + "funding": {
3131 + "url": "https://github.com/sponsors/jonschlinkert"
3132 + }
3133 + },
3134 + "node_modules/unimport/node_modules/pkg-types": {
3135 + "version": "1.3.1",
3136 + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
3137 + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
3138 + "dev": true,
3139 + "dependencies": {
3140 + "confbox": "^0.1.8",
3141 + "mlly": "^1.7.4",
3142 + "pathe": "^2.0.1"
3143 + }
3144 + },
3145 + "node_modules/unplugin": {
3146 + "version": "2.2.1",
3147 + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.2.1.tgz",
3148 + "integrity": "sha512-Q0YDhwViJaSnHf1cxLf+/VKhmfdr/ZAS/RL2GQVO0cAbAfJAVUef2bvNu+veyWcEPNwsTlFmMiFLjf8Xeqog8g==",
3149 + "dev": true,
3150 + "dependencies": {
3151 + "acorn": "^8.14.1",
3152 + "webpack-virtual-modules": "^0.6.2"
3153 + },
3154 + "engines": {
3155 + "node": ">=18.12.0"
3156 + }
3157 + },
3158 + "node_modules/unplugin-auto-import": {
3159 + "version": "19.1.1",
3160 + "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-19.1.1.tgz",
3161 + "integrity": "sha512-sCGZZrSR1Bc8RfN8Q0RUDxXtC20rdAt7UB4lDyq8MNtKVHiXXh+5af6Nz4JRp9Q+7HjnbgQfQox0TkEymjdUAQ==",
3162 + "dev": true,
3163 + "dependencies": {
3164 + "local-pkg": "^1.0.0",
3165 + "magic-string": "^0.30.17",
3166 + "picomatch": "^4.0.2",
3167 + "unimport": "^4.1.2",
3168 + "unplugin": "^2.2.0",
3169 + "unplugin-utils": "^0.2.4"
3170 + },
3171 + "engines": {
3172 + "node": ">=14"
3173 + },
3174 + "funding": {
3175 + "url": "https://github.com/sponsors/antfu"
3176 + },
3177 + "peerDependencies": {
3178 + "@nuxt/kit": "^3.2.2",
3179 + "@vueuse/core": "*"
3180 + },
3181 + "peerDependenciesMeta": {
3182 + "@nuxt/kit": {
3183 + "optional": true
3184 + },
3185 + "@vueuse/core": {
3186 + "optional": true
3187 + }
3188 + }
3189 + },
3190 + "node_modules/unplugin-auto-import/node_modules/picomatch": {
3191 + "version": "4.0.2",
3192 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
3193 + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
3194 + "dev": true,
3195 + "engines": {
3196 + "node": ">=12"
3197 + },
3198 + "funding": {
3199 + "url": "https://github.com/sponsors/jonschlinkert"
3200 + }
3201 + },
3202 + "node_modules/unplugin-utils": {
3203 + "version": "0.2.4",
3204 + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz",
3205 + "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==",
3206 + "dev": true,
3207 + "dependencies": {
3208 + "pathe": "^2.0.2",
3209 + "picomatch": "^4.0.2"
3210 + },
3211 + "engines": {
3212 + "node": ">=18.12.0"
3213 + },
3214 + "funding": {
3215 + "url": "https://github.com/sponsors/sxzz"
3216 + }
3217 + },
3218 + "node_modules/unplugin-utils/node_modules/picomatch": {
3219 + "version": "4.0.2",
3220 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
3221 + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
3222 + "dev": true,
3223 + "engines": {
3224 + "node": ">=12"
3225 + },
3226 + "funding": {
3227 + "url": "https://github.com/sponsors/jonschlinkert"
3228 + }
3229 + },
3230 + "node_modules/unplugin-vue-components": {
3231 + "version": "28.4.1",
3232 + "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-28.4.1.tgz",
3233 + "integrity": "sha512-niGSc0vJD9ueAnsqcfAldmtpkppZ09B6p2G1dL7X5S8KPdgbk1P+txPwaaDCe7N+eZh2VG1aAypLXkuJs3OSUg==",
3234 + "dev": true,
3235 + "dependencies": {
3236 + "chokidar": "^3.6.0",
3237 + "debug": "^4.4.0",
3238 + "local-pkg": "^1.0.0",
3239 + "magic-string": "^0.30.17",
3240 + "mlly": "^1.7.4",
3241 + "tinyglobby": "^0.2.12",
3242 + "unplugin": "^2.2.0",
3243 + "unplugin-utils": "^0.2.4"
3244 + },
3245 + "engines": {
3246 + "node": ">=14"
3247 + },
3248 + "funding": {
3249 + "url": "https://github.com/sponsors/antfu"
3250 + },
3251 + "peerDependencies": {
3252 + "@babel/parser": "^7.15.8",
3253 + "@nuxt/kit": "^3.2.2",
3254 + "vue": "2 || 3"
3255 + },
3256 + "peerDependenciesMeta": {
3257 + "@babel/parser": {
3258 + "optional": true
3259 + },
3260 + "@nuxt/kit": {
3261 + "optional": true
3262 + }
3263 + }
3264 + },
2893 "node_modules/update-browserslist-db": { 3265 "node_modules/update-browserslist-db": {
2894 "version": "1.1.3", 3266 "version": "1.1.3",
2895 "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 3267 "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
...@@ -3072,6 +3444,12 @@ ...@@ -3072,6 +3444,12 @@
3072 "vue": "^3.2.0" 3444 "vue": "^3.2.0"
3073 } 3445 }
3074 }, 3446 },
3447 + "node_modules/webpack-virtual-modules": {
3448 + "version": "0.6.2",
3449 + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
3450 + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
3451 + "dev": true
3452 + },
3075 "node_modules/which": { 3453 "node_modules/which": {
3076 "version": "2.0.2", 3454 "version": "2.0.2",
3077 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3455 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
21 "autoprefixer": "^10.4.19", 21 "autoprefixer": "^10.4.19",
22 "postcss": "^8.4.35", 22 "postcss": "^8.4.35",
23 "tailwindcss": "^3.4.1", 23 "tailwindcss": "^3.4.1",
24 + "unplugin-auto-import": "^19.1.1",
25 + "unplugin-vue-components": "^28.4.1",
24 "vite": "^6.2.0" 26 "vite": "^6.2.0"
25 } 27 }
26 } 28 }
......
1 +/* eslint-disable */
2 +/* prettier-ignore */
3 +// @ts-nocheck
4 +// noinspection JSUnusedGlobalSymbols
5 +// Generated by unplugin-auto-import
6 +// biome-ignore lint: disable
7 +export {}
8 +declare global {
9 + const EffectScope: typeof import('vue')['EffectScope']
10 + const computed: typeof import('vue')['computed']
11 + const createApp: typeof import('vue')['createApp']
12 + const customRef: typeof import('vue')['customRef']
13 + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
14 + const defineComponent: typeof import('vue')['defineComponent']
15 + const effectScope: typeof import('vue')['effectScope']
16 + const getCurrentInstance: typeof import('vue')['getCurrentInstance']
17 + const getCurrentScope: typeof import('vue')['getCurrentScope']
18 + const h: typeof import('vue')['h']
19 + const inject: typeof import('vue')['inject']
20 + const isProxy: typeof import('vue')['isProxy']
21 + const isReactive: typeof import('vue')['isReactive']
22 + const isReadonly: typeof import('vue')['isReadonly']
23 + const isRef: typeof import('vue')['isRef']
24 + const markRaw: typeof import('vue')['markRaw']
25 + const nextTick: typeof import('vue')['nextTick']
26 + const onActivated: typeof import('vue')['onActivated']
27 + const onBeforeMount: typeof import('vue')['onBeforeMount']
28 + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
29 + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
30 + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
31 + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
32 + const onDeactivated: typeof import('vue')['onDeactivated']
33 + const onErrorCaptured: typeof import('vue')['onErrorCaptured']
34 + const onMounted: typeof import('vue')['onMounted']
35 + const onRenderTracked: typeof import('vue')['onRenderTracked']
36 + const onRenderTriggered: typeof import('vue')['onRenderTriggered']
37 + const onScopeDispose: typeof import('vue')['onScopeDispose']
38 + const onServerPrefetch: typeof import('vue')['onServerPrefetch']
39 + const onUnmounted: typeof import('vue')['onUnmounted']
40 + const onUpdated: typeof import('vue')['onUpdated']
41 + const onWatcherCleanup: typeof import('vue')['onWatcherCleanup']
42 + const provide: typeof import('vue')['provide']
43 + const reactive: typeof import('vue')['reactive']
44 + const readonly: typeof import('vue')['readonly']
45 + const ref: typeof import('vue')['ref']
46 + const resolveComponent: typeof import('vue')['resolveComponent']
47 + const shallowReactive: typeof import('vue')['shallowReactive']
48 + const shallowReadonly: typeof import('vue')['shallowReadonly']
49 + const shallowRef: typeof import('vue')['shallowRef']
50 + const toRaw: typeof import('vue')['toRaw']
51 + const toRef: typeof import('vue')['toRef']
52 + const toRefs: typeof import('vue')['toRefs']
53 + const toValue: typeof import('vue')['toValue']
54 + const triggerRef: typeof import('vue')['triggerRef']
55 + const unref: typeof import('vue')['unref']
56 + const useAttrs: typeof import('vue')['useAttrs']
57 + const useCssModule: typeof import('vue')['useCssModule']
58 + const useCssVars: typeof import('vue')['useCssVars']
59 + const useId: typeof import('vue')['useId']
60 + const useLink: typeof import('vue-router')['useLink']
61 + const useModel: typeof import('vue')['useModel']
62 + const useRoute: typeof import('vue-router')['useRoute']
63 + const useRouter: typeof import('vue-router')['useRouter']
64 + const useSlots: typeof import('vue')['useSlots']
65 + const useTemplateRef: typeof import('vue')['useTemplateRef']
66 + const watch: typeof import('vue')['watch']
67 + const watchEffect: typeof import('vue')['watchEffect']
68 + const watchPostEffect: typeof import('vue')['watchPostEffect']
69 + const watchSyncEffect: typeof import('vue')['watchSyncEffect']
70 +}
71 +// for type re-export
72 +declare global {
73 + // @ts-ignore
74 + export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
75 + import('vue')
76 +}
1 +/* eslint-disable */
2 +// @ts-nocheck
3 +// Generated by unplugin-vue-components
4 +// Read more: https://github.com/vuejs/core/pull/3399
5 +// biome-ignore lint: disable
6 +export {}
7 +
8 +/* prettier-ignore */
9 +declare module 'vue' {
10 + export interface GlobalComponents {
11 + ActivityCard: typeof import('./components/ui/ActivityCard.vue')['default']
12 + AppLayout: typeof import('./components/layout/AppLayout.vue')['default']
13 + BottomNav: typeof import('./components/layout/BottomNav.vue')['default']
14 + ConfirmDialog: typeof import('./components/ui/ConfirmDialog.vue')['default']
15 + CourseCard: typeof import('./components/ui/CourseCard.vue')['default']
16 + FrostedGlass: typeof import('./components/ui/FrostedGlass.vue')['default']
17 + GradientHeader: typeof import('./components/ui/GradientHeader.vue')['default']
18 + LiveStreamCard: typeof import('./components/ui/LiveStreamCard.vue')['default']
19 + MenuItem: typeof import('./components/ui/MenuItem.vue')['default']
20 + RouterLink: typeof import('vue-router')['RouterLink']
21 + RouterView: typeof import('vue-router')['RouterView']
22 + SearchBar: typeof import('./components/ui/SearchBar.vue')['default']
23 + SummerCampCard: typeof import('./components/ui/SummerCampCard.vue')['default']
24 + }
25 +}
...@@ -3,17 +3,8 @@ import './style.css' ...@@ -3,17 +3,8 @@ import './style.css'
3 import App from './App.vue' 3 import App from './App.vue'
4 import router from './router' 4 import router from './router'
5 5
6 -// 导入Vant组件和样式
7 -import { Button, NavBar, Tabbar, TabbarItem } from 'vant'
8 import 'vant/lib/index.css' 6 import 'vant/lib/index.css'
9 7
10 const app = createApp(App) 8 const app = createApp(App)
11 app.use(router) 9 app.use(router)
12 -
13 -// 注册Vant组件
14 -app.use(Button)
15 -app.use(NavBar)
16 -app.use(Tabbar)
17 -app.use(TabbarItem)
18 -
19 app.mount('#app') 10 app.mount('#app')
......
...@@ -8,11 +8,25 @@ ...@@ -8,11 +8,25 @@
8 import { defineConfig } from 'vite' 8 import { defineConfig } from 'vite'
9 import vue from '@vitejs/plugin-vue' 9 import vue from '@vitejs/plugin-vue'
10 import vueJsx from '@vitejs/plugin-vue-jsx' 10 import vueJsx from '@vitejs/plugin-vue-jsx'
11 -import path from "path"; 11 +import path from "path"
12 +import Components from 'unplugin-vue-components/vite'
13 +import AutoImport from 'unplugin-auto-import/vite'
14 +import { VantResolver } from 'unplugin-vue-components/resolvers'
12 15
13 // https://vite.dev/config/ 16 // https://vite.dev/config/
14 export default defineConfig({ 17 export default defineConfig({
15 - plugins: [vue(), vueJsx()], 18 + plugins: [
19 + vue(),
20 + vueJsx(),
21 + AutoImport({
22 + imports: ['vue', 'vue-router'],
23 + dts: 'src/auto-imports.d.ts',
24 + }),
25 + Components({
26 + resolvers: [VantResolver()],
27 + dts: 'src/components.d.ts',
28 + }),
29 + ],
16 resolve: { 30 resolve: {
17 alias: { // 将会被传递到 @rollup/plugin-alias 作为 entries 的选项。也可以是一个对象,或一个 { find, replacement } 的数组. 当使用文件系统路径的别名时,请始终使用绝对路径。相对路径的别名值会被原封不动地使用,因此无法被正常解析。 更高级的自定义解析方法可以通过 插件 实现。 31 alias: { // 将会被传递到 @rollup/plugin-alias 作为 entries 的选项。也可以是一个对象,或一个 { find, replacement } 的数组. 当使用文件系统路径的别名时,请始终使用绝对路径。相对路径的别名值会被原封不动地使用,因此无法被正常解析。 更高级的自定义解析方法可以通过 插件 实现。
18 "@": path.resolve(__dirname, "src"), 32 "@": path.resolve(__dirname, "src"),
......