diff --git a/package.json b/package.json index a711b99..7127373 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "dev": "vite --host", "build": "run-p type-check \"build-only {@}\" --", "preview": "vite preview", - "build-only": "vite build", + "build-only": "vite build && tsx src/utils/post-build.ts", "type-check": "vue-tsc --build", "lint": "eslint . --fix", "format": "prettier --write src/" @@ -54,6 +54,7 @@ "jiti": "^2.4.2", "npm-run-all2": "^8.0.4", "prettier": "3.6.2", + "tsx": "^4.20.5", "typescript": "~5.8.0", "vite": "^7.0.6", "vite-plugin-vue-devtools": "^8.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e55d337..855755b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -89,10 +89,10 @@ importers: version: 0.13.0 '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3)) + version: 6.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3)) '@vitejs/plugin-vue-jsx': specifier: ^5.0.1 - version: 5.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3)) + version: 5.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3)) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@9.33.0(jiti@2.5.1))(prettier@3.6.2) @@ -117,15 +117,18 @@ importers: prettier: specifier: 3.6.2 version: 3.6.2 + tsx: + specifier: ^4.20.5 + version: 4.20.5 typescript: specifier: ~5.8.0 version: 5.8.3 vite: specifier: ^7.0.6 - version: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) + version: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) vite-plugin-vue-devtools: specifier: ^8.0.0 - version: 8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3)) + version: 8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3)) vue-tsc: specifier: ^3.0.4 version: 3.0.5(typescript@5.8.3) @@ -1466,6 +1469,9 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1908,6 +1914,9 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -2044,6 +2053,11 @@ packages: tslib@2.3.0: resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + tsx@4.20.5: + resolution: {integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==} + engines: {node: '>=18.0.0'} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -2930,21 +2944,21 @@ snapshots: '@vicons/ionicons5@0.13.0': {} - '@vitejs/plugin-vue-jsx@5.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))': + '@vitejs/plugin-vue-jsx@5.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) '@rolldown/pluginutils': 1.0.0-beta.32 '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.0) - vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) + vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) + vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) vue: 3.5.18(typescript@5.8.3) '@volar/language-core@2.4.22': @@ -3029,14 +3043,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3))': + '@vue/devtools-core@8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3))': dependencies: '@vue/devtools-kit': 8.0.0 '@vue/devtools-shared': 8.0.0 mitt: 3.0.1 nanoid: 5.1.5 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)) + vite-hot-client: 2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)) vue: 3.5.18(typescript@5.8.3) transitivePeerDependencies: - vite @@ -3641,6 +3655,10 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -4003,6 +4021,8 @@ snapshots: resolve-from@4.0.0: {} + resolve-pkg-maps@1.0.0: {} + reusify@1.1.0: {} rfdc@1.4.1: {} @@ -4145,6 +4165,13 @@ snapshots: tslib@2.3.0: {} + tsx@4.20.5: + dependencies: + esbuild: 0.25.8 + get-tsconfig: 4.10.1 + optionalDependencies: + fsevents: 2.3.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -4194,17 +4221,17 @@ snapshots: evtd: 0.2.4 vue: 3.5.18(typescript@5.8.3) - vite-dev-rpc@1.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)): + vite-dev-rpc@1.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)): dependencies: birpc: 2.5.0 - vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) - vite-hot-client: 2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)) + vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) + vite-hot-client: 2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)) - vite-hot-client@2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)): + vite-hot-client@2.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)): dependencies: - vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) + vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) - vite-plugin-inspect@11.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)): + vite-plugin-inspect@11.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)): dependencies: ansis: 4.1.0 debug: 4.4.1 @@ -4214,27 +4241,27 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.5 - vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) - vite-dev-rpc: 1.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)) + vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) + vite-dev-rpc: 1.1.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3)): + vite-plugin-vue-devtools@8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3)): dependencies: - '@vue/devtools-core': 8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0))(vue@3.5.18(typescript@5.8.3)) + '@vue/devtools-core': 8.0.0(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5))(vue@3.5.18(typescript@5.8.3)) '@vue/devtools-kit': 8.0.0 '@vue/devtools-shared': 8.0.0 execa: 9.6.0 sirv: 3.0.1 - vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) - vite-plugin-inspect: 11.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)) - vite-plugin-vue-inspector: 5.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)) + vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) + vite-plugin-inspect: 11.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)) + vite-plugin-vue-inspector: 5.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)) transitivePeerDependencies: - '@nuxt/kit' - supports-color - vue - vite-plugin-vue-inspector@5.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)): + vite-plugin-vue-inspector@5.3.2(vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5)): dependencies: '@babel/core': 7.28.0 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0) @@ -4245,11 +4272,11 @@ snapshots: '@vue/compiler-dom': 3.5.18 kolorist: 1.8.0 magic-string: 0.30.17 - vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0) + vite: 7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5) transitivePeerDependencies: - supports-color - vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0): + vite@7.1.2(@types/node@22.17.1)(jiti@2.5.1)(sass@1.90.0)(tsx@4.20.5): dependencies: esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.3) @@ -4262,6 +4289,7 @@ snapshots: fsevents: 2.3.3 jiti: 2.5.1 sass: 1.90.0 + tsx: 4.20.5 vooks@0.2.12(vue@3.5.18(typescript@5.8.3)): dependencies: diff --git a/src/utils/post-build.ts b/src/utils/post-build.ts index dab5c92..82ba81d 100644 --- a/src/utils/post-build.ts +++ b/src/utils/post-build.ts @@ -1,13 +1,14 @@ -import { tgz } from 'compressing'; +import { tgz, zip } from 'compressing'; import dayjs from 'dayjs'; import packageJson from '../../package.json'; const now = dayjs(); -const fileName = `${packageJson.name}-${now.format('YYMMDD-HHmm')}`; +const fileName = `${packageJson.name}_v${packageJson.version}_${now.format('YYMMDD-HHmmss')}`; try { + await zip.compressDir('./dist', `${fileName}.zip`); await tgz.compressDir('./dist', `${fileName}.tar`); await tgz.compressDir('./dist', `${fileName}.tar.gz`); } catch (error) {