From 9e8db7754f1fed8ae32bd322e1278feecd7427f3 Mon Sep 17 00:00:00 2001 From: YGXB_net Date: Sat, 13 Jun 2026 23:38:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(build):=20=E9=9B=86=E6=88=90=20Tailwind=20?= =?UTF-8?q?CSS=20=E6=A0=B7=E5=BC=8F=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 安装并配置 Tailwind CSS 和相关依赖 - 在 main.ts 中引入全局样式文件 src/assets/main.css - 添加 @tailwindcss/vite 插件到项目依赖 - 更新 pnpm-lock.yaml 中的依赖关系和版本信息 - 修复开发环境标题设置中的缩进问题 --- web/package.json | 2 + web/pnpm-lock.yaml | 246 ++++++++++++++++++++++++++++++++++++---- web/src/assets/main.css | 1 + web/src/main.ts | 4 +- web/vite.config.ts | 2 + 5 files changed, 231 insertions(+), 24 deletions(-) create mode 100644 web/src/assets/main.css diff --git a/web/package.json b/web/package.json index be0cd4f..a94149e 100644 --- a/web/package.json +++ b/web/package.json @@ -12,10 +12,12 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.3.2", + "@tailwindcss/vite": "^4.3.0", "axios": "^1.16.1", "element-plus": "^2.14.1", "pinia": "^3.0.4", "pinia-plugin-persistedstate": "^4.7.1", + "tailwindcss": "^4.3.0", "vue": "^3.5.35", "vue-router": "^5.1.0" }, diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index f5cf40d..9f91232 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@element-plus/icons-vue': specifier: ^2.3.2 version: 2.3.2(vue@3.5.35(typescript@6.0.3)) + '@tailwindcss/vite': + specifier: ^4.3.0 + version: 4.3.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)) axios: specifier: ^1.16.1 version: 1.16.1 @@ -23,12 +26,15 @@ importers: pinia-plugin-persistedstate: specifier: ^4.7.1 version: 4.7.1(pinia@3.0.4(typescript@6.0.3)(vue@3.5.35(typescript@6.0.3))) + tailwindcss: + specifier: ^4.3.0 + version: 4.3.0 vue: specifier: ^3.5.35 version: 3.5.35(typescript@6.0.3) vue-router: specifier: ^5.1.0 - version: 5.1.0(@vue/compiler-sfc@3.5.35)(pinia@3.0.4(typescript@6.0.3)(vue@3.5.35(typescript@6.0.3)))(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)) + version: 5.1.0(@vue/compiler-sfc@3.5.35)(pinia@3.0.4(typescript@6.0.3)(vue@3.5.35(typescript@6.0.3)))(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)) devDependencies: '@tsconfig/node24': specifier: ^24.0.4 @@ -38,7 +44,7 @@ importers: version: 24.12.4 '@vitejs/plugin-vue': specifier: ^6.0.7 - version: 6.0.7(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)) + version: 6.0.7(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)) '@vue/tsconfig': specifier: ^0.9.1 version: 0.9.1(typescript@6.0.3)(vue@3.5.35(typescript@6.0.3)) @@ -50,10 +56,10 @@ importers: version: 6.0.3 vite: specifier: ^8.0.16 - version: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) + version: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) vite-plugin-vue-devtools: specifier: ^8.1.2 - version: 8.1.2(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)) + version: 8.1.2(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)) vue-tsc: specifier: ^3.3.3 version: 3.3.3(typescript@6.0.3) @@ -377,6 +383,100 @@ packages: '@sxzz/popperjs-es@2.11.8': resolution: {integrity: sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==} + '@tailwindcss/node@4.3.0': + resolution: {integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==} + + '@tailwindcss/oxide-android-arm64@4.3.0': + resolution: {integrity: sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.3.0': + resolution: {integrity: sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.3.0': + resolution: {integrity: sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.3.0': + resolution: {integrity: sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0': + resolution: {integrity: sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.0': + resolution: {integrity: sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.3.0': + resolution: {integrity: sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.3.0': + resolution: {integrity: sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.3.0': + resolution: {integrity: sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.3.0': + resolution: {integrity: sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.0': + resolution: {integrity: sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.3.0': + resolution: {integrity: sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.3.0': + resolution: {integrity: sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==} + engines: {node: '>= 20'} + + '@tailwindcss/vite@4.3.0': + resolution: {integrity: sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 || ^8 + '@tsconfig/node24@24.0.4': resolution: {integrity: sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==} @@ -657,6 +757,10 @@ packages: peerDependencies: vue: ^3.3.7 + enhanced-resolve@5.24.0: + resolution: {integrity: sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==} + engines: {node: '>=10.13.0'} + entities@7.0.1: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} @@ -736,6 +840,9 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -784,6 +891,10 @@ packages: resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} engines: {node: '>=18'} + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1098,6 +1209,13 @@ packages: resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} engines: {node: '>=16'} + tailwindcss@4.3.0: + resolution: {integrity: sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -1602,6 +1720,74 @@ snapshots: '@sxzz/popperjs-es@2.11.8': {} + '@tailwindcss/node@4.3.0': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.24.0 + jiti: 2.7.0 + lightningcss: 1.32.0 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.3.0 + + '@tailwindcss/oxide-android-arm64@4.3.0': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.3.0': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.3.0': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.3.0': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.3.0': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.3.0': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.3.0': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.3.0': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.3.0': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.3.0': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.3.0': + optional: true + + '@tailwindcss/oxide@4.3.0': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.3.0 + '@tailwindcss/oxide-darwin-arm64': 4.3.0 + '@tailwindcss/oxide-darwin-x64': 4.3.0 + '@tailwindcss/oxide-freebsd-x64': 4.3.0 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.0 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.0 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.0 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.0 + '@tailwindcss/oxide-linux-x64-musl': 4.3.0 + '@tailwindcss/oxide-wasm32-wasi': 4.3.0 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.0 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.0 + + '@tailwindcss/vite@4.3.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0))': + dependencies: + '@tailwindcss/node': 4.3.0 + '@tailwindcss/oxide': 4.3.0 + tailwindcss: 4.3.0 + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) + '@tsconfig/node24@24.0.4': {} '@tybys/wasm-util@0.10.2': @@ -1623,10 +1809,10 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@vitejs/plugin-vue@6.0.7(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.7(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) vue: 3.5.35(typescript@6.0.3) '@volar/language-core@2.4.28': @@ -1937,6 +2123,11 @@ snapshots: vue: 3.5.35(typescript@6.0.3) vue-component-type-helpers: 3.3.3 + enhanced-resolve@5.24.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + entities@7.0.1: {} error-stack-parser-es@1.0.5: {} @@ -2003,6 +2194,8 @@ snapshots: gopd@1.2.0: {} + graceful-fs@4.2.11: {} + has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -2040,6 +2233,8 @@ snapshots: isexe@3.1.5: {} + jiti@2.7.0: {} + js-tokens@4.0.0: {} jsesc@3.1.0: {} @@ -2297,6 +2492,10 @@ snapshots: dependencies: copy-anything: 4.0.5 + tailwindcss@4.3.0: {} + + tapable@2.3.3: {} + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -2330,17 +2529,17 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - vite-dev-rpc@2.0.0(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)): + vite-dev-rpc@2.0.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)): dependencies: birpc: 4.0.0 - vite: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) - vite-hot-client: 2.2.0(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)) + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)) - vite-hot-client@2.2.0(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)): + vite-hot-client@2.2.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)): dependencies: - vite: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) - vite-plugin-inspect@11.4.1(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)): + vite-plugin-inspect@11.4.1(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)): dependencies: ansis: 4.3.1 error-stack-parser-es: 1.0.5 @@ -2350,24 +2549,24 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) - vite-dev-rpc: 2.0.0(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)) + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) + vite-dev-rpc: 2.0.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)) - vite-plugin-vue-devtools@8.1.2(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)): + vite-plugin-vue-devtools@8.1.2(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)): dependencies: '@vue/devtools-core': 8.1.2(vue@3.5.35(typescript@6.0.3)) '@vue/devtools-kit': 8.1.2 '@vue/devtools-shared': 8.1.2 sirv: 3.0.2 - vite: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) - vite-plugin-inspect: 11.4.1(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)) - vite-plugin-vue-inspector: 6.0.0(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)) + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) + vite-plugin-inspect: 11.4.1(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)) + vite-plugin-vue-inspector: 6.0.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)) transitivePeerDependencies: - '@nuxt/kit' - supports-color - vue - vite-plugin-vue-inspector@6.0.0(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0)): + vite-plugin-vue-inspector@6.0.0(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0)): dependencies: '@babel/core': 7.29.7 '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7) @@ -2378,11 +2577,11 @@ snapshots: '@vue/compiler-dom': 3.5.35 kolorist: 1.8.0 magic-string: 0.30.21 - vite: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0): + vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -2392,13 +2591,14 @@ snapshots: optionalDependencies: '@types/node': 24.12.4 fsevents: 2.3.3 + jiti: 2.7.0 yaml: 2.9.0 vscode-uri@3.1.0: {} vue-component-type-helpers@3.3.3: {} - vue-router@5.1.0(@vue/compiler-sfc@3.5.35)(pinia@3.0.4(typescript@6.0.3)(vue@3.5.35(typescript@6.0.3)))(vite@8.0.16(@types/node@24.12.4)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)): + vue-router@5.1.0(@vue/compiler-sfc@3.5.35)(pinia@3.0.4(typescript@6.0.3)(vue@3.5.35(typescript@6.0.3)))(vite@8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0))(vue@3.5.35(typescript@6.0.3)): dependencies: '@babel/generator': 8.0.0-rc.6 '@vue-macros/common': 3.1.2(vue@3.5.35(typescript@6.0.3)) @@ -2421,7 +2621,7 @@ snapshots: optionalDependencies: '@vue/compiler-sfc': 3.5.35 pinia: 3.0.4(typescript@6.0.3)(vue@3.5.35(typescript@6.0.3)) - vite: 8.0.16(@types/node@24.12.4)(yaml@2.9.0) + vite: 8.0.16(@types/node@24.12.4)(jiti@2.7.0)(yaml@2.9.0) vue-tsc@3.3.3(typescript@6.0.3): dependencies: diff --git a/web/src/assets/main.css b/web/src/assets/main.css new file mode 100644 index 0000000..a461c50 --- /dev/null +++ b/web/src/assets/main.css @@ -0,0 +1 @@ +@import "tailwindcss"; \ No newline at end of file diff --git a/web/src/main.ts b/web/src/main.ts index 8f755be..195a44a 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -1,3 +1,5 @@ +import './assets/main.css' + import {createApp} from 'vue' import {createPinia} from 'pinia' import persistedState from 'pinia-plugin-persistedstate'; @@ -10,7 +12,7 @@ import 'element-plus/dist/index.css' const app = createApp(App) if (import.meta.env.DEV) { - document.title = '抖音数据去重 - dev' + document.title = '抖音数据去重 - dev' } app.use(createPinia().use(persistedState)) diff --git a/web/vite.config.ts b/web/vite.config.ts index 488fac6..2d7d419 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -3,12 +3,14 @@ import {fileURLToPath, URL} from 'node:url' import {defineConfig} from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' +import tailwindcss from '@tailwindcss/vite' // https://vite.dev/config/ export default defineConfig({ plugins: [ vue(), vueDevTools(), + tailwindcss(), ], resolve: { alias: {