From d72f872369de4d5056482d4061b3bf1d76da39f5 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 21:42:44 +0800 Subject: [PATCH] refactor(tsdown): migrate styled ui-kit packages --- packages/@core/ui-kit/menu-ui/build.config.ts | 26 ------- packages/@core/ui-kit/menu-ui/package.json | 5 +- .../@core/ui-kit/menu-ui/tsdown.config.ts | 22 ++++++ packages/@core/ui-kit/tabs-ui/build.config.ts | 21 ------ packages/@core/ui-kit/tabs-ui/package.json | 5 +- .../@core/ui-kit/tabs-ui/tsdown.config.ts | 22 ++++++ pnpm-lock.yaml | 73 ++++++++++++++++++- 7 files changed, 122 insertions(+), 52 deletions(-) delete mode 100644 packages/@core/ui-kit/menu-ui/build.config.ts create mode 100644 packages/@core/ui-kit/menu-ui/tsdown.config.ts delete mode 100644 packages/@core/ui-kit/tabs-ui/build.config.ts create mode 100644 packages/@core/ui-kit/tabs-ui/tsdown.config.ts diff --git a/packages/@core/ui-kit/menu-ui/build.config.ts b/packages/@core/ui-kit/menu-ui/build.config.ts deleted file mode 100644 index 1ff78fabb..000000000 --- a/packages/@core/ui-kit/menu-ui/build.config.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - pattern: ['**/*'], - }, - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/menu-ui/package.json b/packages/@core/ui-kit/menu-ui/package.json index fa3a4015b..5e2d5dd86 100644 --- a/packages/@core/ui-kit/menu-ui/package.json +++ b/packages/@core/ui-kit/menu-ui/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm exec tsdown", + "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ @@ -22,6 +23,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,6 +35,7 @@ "publishConfig": { "exports": { ".": { + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/ui-kit/menu-ui/tsdown.config.ts b/packages/@core/ui-kit/menu-ui/tsdown.config.ts new file mode 100644 index 000000000..b5bde2fdd --- /dev/null +++ b/packages/@core/ui-kit/menu-ui/tsdown.config.ts @@ -0,0 +1,22 @@ +import Vue from 'unplugin-vue/rolldown'; + +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + vue: true, + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + js: '.mjs', + }), + platform: 'neutral', + plugins: [Vue({ isProduction: true })], + unbundle: true, +}); diff --git a/packages/@core/ui-kit/tabs-ui/build.config.ts b/packages/@core/ui-kit/tabs-ui/build.config.ts deleted file mode 100644 index 18eaa604c..000000000 --- a/packages/@core/ui-kit/tabs-ui/build.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/tabs-ui/package.json b/packages/@core/ui-kit/tabs-ui/package.json index f329c04bc..260d14d6b 100644 --- a/packages/@core/ui-kit/tabs-ui/package.json +++ b/packages/@core/ui-kit/tabs-ui/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm exec tsdown", + "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ @@ -22,6 +23,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,6 +35,7 @@ "publishConfig": { "exports": { ".": { + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/ui-kit/tabs-ui/tsdown.config.ts b/packages/@core/ui-kit/tabs-ui/tsdown.config.ts new file mode 100644 index 000000000..3bbe38d1d --- /dev/null +++ b/packages/@core/ui-kit/tabs-ui/tsdown.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'tsdown'; +// eslint-disable-next-line n/no-extraneous-import +import Vue from 'unplugin-vue/rolldown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + vue: true, + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + js: '.mjs', + }), + platform: 'neutral', + plugins: [Vue({ isProduction: true })], + unbundle: true, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66bea98c6..4d857518d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -417,6 +417,9 @@ catalogs: unplugin-element-plus: specifier: ^0.11.2 version: 0.11.2 + unplugin-vue: + specifier: ^7.1.1 + version: 7.1.1 vee-validate: specifier: ^4.15.1 version: 4.15.1 @@ -504,6 +507,9 @@ importers: '@playwright/test': specifier: 'catalog:' version: 1.58.2 + '@tsdown/css': + specifier: ^0.21.3 + version: 0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2) '@types/node': specifier: 'catalog:' version: 25.5.0 @@ -578,7 +584,7 @@ importers: version: 4.2.1 tsdown: specifier: 'catalog:' - version: 0.21.3(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + version: 0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) turbo: specifier: 'catalog:' version: 2.8.17 @@ -589,7 +595,7 @@ importers: specifier: 'catalog:' version: 3.6.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) unplugin-vue: - specifier: ^7.1.1 + specifier: 'catalog:' version: 7.1.1(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(vue@3.5.30(typescript@5.9.3))(yaml@2.8.2) vite: specifier: 'catalog:' @@ -5024,6 +5030,25 @@ packages: peerDependencies: vue: ^3.5.30 + '@tsdown/css@0.21.3': + resolution: {integrity: sha512-ggFsEbtl3T75KM8Y84Tz7PrpzLqj7njWjEcm5ZUkrmL+xIJtzJx7RupPocIsf6mMPf3IVSnyNbZxwDlbKg5mTw==} + engines: {node: '>=20.19.0'} + peerDependencies: + postcss: ^8.4.0 + postcss-import: ^16.0.0 + sass: '*' + sass-embedded: '*' + tsdown: 0.21.3 + peerDependenciesMeta: + postcss: + optional: true + postcss-import: + optional: true + sass: + optional: true + sass-embedded: + optional: true + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -9194,6 +9219,24 @@ packages: resolution: {integrity: sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==} engines: {node: ^12 || >=14} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} @@ -14329,6 +14372,21 @@ snapshots: '@tanstack/virtual-core': 3.13.22 vue: 3.5.30(typescript@5.9.3) + '@tsdown/css@0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2)': + dependencies: + lightningcss: 1.32.0 + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.2) + rolldown: 1.0.0-rc.9 + tsdown: 0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + optionalDependencies: + postcss: 8.5.8 + sass: 1.98.0 + sass-embedded: 1.98.0 + transitivePeerDependencies: + - jiti + - tsx + - yaml + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -19026,6 +19084,14 @@ snapshots: postcss: 8.5.8 postcss-safe-parser: 6.0.0(postcss@8.5.8) + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.2): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.6.1 + postcss: 8.5.8 + yaml: 2.8.2 + postcss-media-query-parser@0.2.3: {} postcss-merge-longhand@7.0.5(postcss@8.5.8): @@ -20357,7 +20423,7 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.21.3(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): + tsdown@0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -20376,6 +20442,7 @@ snapshots: unconfig-core: 7.5.0 unrun: 0.2.32(synckit@0.11.12) optionalDependencies: + '@tsdown/css': 0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2) publint: 0.3.18 typescript: 5.9.3 transitivePeerDependencies: