From 60335cbd560af0f37c99815859d367a0b1455eb2 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Wed, 7 Jan 2026 12:23:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8vite(rolldown)=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3unbuild?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eslint-config/src/configs/node.ts | 1 + package.json | 1 + packages/@core/base/icons/package.json | 2 +- packages/@core/base/icons/vite.config.ts | 14 ++++++++++ packages/@core/base/shared/package.json | 7 ++--- packages/@core/base/shared/vite.config.ts | 23 ++++++++++++++++ packages/@core/base/typings/package.json | 2 +- packages/@core/base/typings/vite.config.ts | 14 ++++++++++ packages/@core/composables/package.json | 2 +- packages/@core/composables/vite.config.ts | 14 ++++++++++ packages/@core/preferences/package.json | 2 +- packages/@core/preferences/vite.config.ts | 14 ++++++++++ packages/@core/ui-kit/form-ui/package.json | 2 +- packages/@core/ui-kit/form-ui/vite.config.ts | 14 ++++++++++ packages/@core/ui-kit/layout-ui/package.json | 2 +- .../@core/ui-kit/layout-ui/vite.config.ts | 14 ++++++++++ packages/@core/ui-kit/menu-ui/build.config.ts | 26 ------------------- packages/@core/ui-kit/menu-ui/package.json | 2 +- packages/@core/ui-kit/menu-ui/vite.config.ts | 14 ++++++++++ packages/@core/ui-kit/popup-ui/package.json | 2 +- packages/@core/ui-kit/popup-ui/vite.config.ts | 14 ++++++++++ packages/@core/ui-kit/shadcn-ui/package.json | 2 +- .../@core/ui-kit/shadcn-ui/vite.config.ts | 14 ++++++++++ packages/@core/ui-kit/tabs-ui/package.json | 2 +- packages/@core/ui-kit/tabs-ui/vite.config.ts | 14 ++++++++++ 25 files changed, 179 insertions(+), 39 deletions(-) create mode 100644 packages/@core/base/icons/vite.config.ts create mode 100644 packages/@core/base/shared/vite.config.ts create mode 100644 packages/@core/base/typings/vite.config.ts create mode 100644 packages/@core/composables/vite.config.ts create mode 100644 packages/@core/preferences/vite.config.ts create mode 100644 packages/@core/ui-kit/form-ui/vite.config.ts create mode 100644 packages/@core/ui-kit/layout-ui/vite.config.ts delete mode 100644 packages/@core/ui-kit/menu-ui/build.config.ts create mode 100644 packages/@core/ui-kit/menu-ui/vite.config.ts create mode 100644 packages/@core/ui-kit/popup-ui/vite.config.ts create mode 100644 packages/@core/ui-kit/shadcn-ui/vite.config.ts create mode 100644 packages/@core/ui-kit/tabs-ui/vite.config.ts diff --git a/internal/lint-configs/eslint-config/src/configs/node.ts b/internal/lint-configs/eslint-config/src/configs/node.ts index f8f26643..f596ee51 100644 --- a/internal/lint-configs/eslint-config/src/configs/node.ts +++ b/internal/lint-configs/eslint-config/src/configs/node.ts @@ -19,6 +19,7 @@ export async function node(): Promise { { allowModules: [ 'unbuild', + '@vitejs/plugin-vue', '@vben/vite-config', 'vitest', 'vite', diff --git a/package.json b/package.json index b59d1c30..3b4b3b7c 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ "typescript": "catalog:", "unbuild": "catalog:", "vite": "catalog:", + "vite-plugin-dts": "catalog:", "vitest": "catalog:", "vue": "catalog:", "vue-tsc": "catalog:" diff --git a/packages/@core/base/icons/package.json b/packages/@core/base/icons/package.json index 3c6775fb..d5a1f966 100644 --- a/packages/@core/base/icons/package.json +++ b/packages/@core/base/icons/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild" + "build": "pnpm vite build" }, "files": [ "dist" diff --git a/packages/@core/base/icons/vite.config.ts b/packages/@core/base/icons/vite.config.ts new file mode 100644 index 00000000..3e0e8b9a --- /dev/null +++ b/packages/@core/base/icons/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({ logLevel: 'error' })], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/base/shared/package.json b/packages/@core/base/shared/package.json index 2e453400..d21b6274 100644 --- a/packages/@core/base/shared/package.json +++ b/packages/@core/base/shared/package.json @@ -11,8 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", - "stub": "pnpm unbuild --stub" + "build": "pnpm vite build", + "stub": "unbuild --stub" }, "files": [ "dist" @@ -96,6 +96,7 @@ "@types/lodash.get": "catalog:", "@types/lodash.isequal": "catalog:", "@types/lodash.set": "catalog:", - "@types/nprogress": "catalog:" + "@types/nprogress": "catalog:", + "vite-plugin-dts": "catalog:" } } diff --git a/packages/@core/base/shared/vite.config.ts b/packages/@core/base/shared/vite.config.ts new file mode 100644 index 00000000..1a3605e9 --- /dev/null +++ b/packages/@core/base/shared/vite.config.ts @@ -0,0 +1,23 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({ logLevel: 'error' })], + build: { + emptyOutDir: true, + lib: { + entry: { + store: 'src/store.ts', + 'constants/index': 'src/constants/index.ts', + 'utils/index': 'src/utils/index.ts', + 'color/index': 'src/color/index.ts', + 'cache/index': 'src/cache/index.ts', + 'global-state': 'src/global-state.ts', + }, + // 按原始文件名输出 + fileName: (format, entryName) => `${entryName}.mjs`, + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/base/typings/package.json b/packages/@core/base/typings/package.json index 6464e695..2a83079e 100644 --- a/packages/@core/base/typings/package.json +++ b/packages/@core/base/typings/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild" + "build": "pnpm vite build" }, "files": [ "dist" diff --git a/packages/@core/base/typings/vite.config.ts b/packages/@core/base/typings/vite.config.ts new file mode 100644 index 00000000..3e0e8b9a --- /dev/null +++ b/packages/@core/base/typings/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({ logLevel: 'error' })], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/composables/package.json b/packages/@core/composables/package.json index 8574f3b0..a3ea9f7c 100644 --- a/packages/@core/composables/package.json +++ b/packages/@core/composables/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild" + "build": "pnpm vite build" }, "files": [ "dist" diff --git a/packages/@core/composables/vite.config.ts b/packages/@core/composables/vite.config.ts new file mode 100644 index 00000000..3e0e8b9a --- /dev/null +++ b/packages/@core/composables/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({ logLevel: 'error' })], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/preferences/package.json b/packages/@core/preferences/package.json index 75a5a5a1..07af0e52 100644 --- a/packages/@core/preferences/package.json +++ b/packages/@core/preferences/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "#build": "pnpm unbuild" + "#build": "pnpm vite build" }, "files": [ "dist", diff --git a/packages/@core/preferences/vite.config.ts b/packages/@core/preferences/vite.config.ts new file mode 100644 index 00000000..3e0e8b9a --- /dev/null +++ b/packages/@core/preferences/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({ logLevel: 'error' })], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/ui-kit/form-ui/package.json b/packages/@core/ui-kit/form-ui/package.json index ce7466d1..164d8b99 100644 --- a/packages/@core/ui-kit/form-ui/package.json +++ b/packages/@core/ui-kit/form-ui/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm vite build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/form-ui/vite.config.ts b/packages/@core/ui-kit/form-ui/vite.config.ts new file mode 100644 index 00000000..4557edf6 --- /dev/null +++ b/packages/@core/ui-kit/form-ui/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({})], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/ui-kit/layout-ui/package.json b/packages/@core/ui-kit/layout-ui/package.json index f7159909..9f4035bd 100644 --- a/packages/@core/ui-kit/layout-ui/package.json +++ b/packages/@core/ui-kit/layout-ui/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm vite build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/layout-ui/vite.config.ts b/packages/@core/ui-kit/layout-ui/vite.config.ts new file mode 100644 index 00000000..4557edf6 --- /dev/null +++ b/packages/@core/ui-kit/layout-ui/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({})], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); 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 1ff78fab..00000000 --- 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 87f646ee..6207fe83 100644 --- a/packages/@core/ui-kit/menu-ui/package.json +++ b/packages/@core/ui-kit/menu-ui/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm vite build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/menu-ui/vite.config.ts b/packages/@core/ui-kit/menu-ui/vite.config.ts new file mode 100644 index 00000000..4a136187 --- /dev/null +++ b/packages/@core/ui-kit/menu-ui/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [vue()], + build: { + lib: { + entry: './src/index.ts', + name: 'MenuUI', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/ui-kit/popup-ui/package.json b/packages/@core/ui-kit/popup-ui/package.json index 3ef78c72..e3941857 100644 --- a/packages/@core/ui-kit/popup-ui/package.json +++ b/packages/@core/ui-kit/popup-ui/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm vite build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/popup-ui/vite.config.ts b/packages/@core/ui-kit/popup-ui/vite.config.ts new file mode 100644 index 00000000..4557edf6 --- /dev/null +++ b/packages/@core/ui-kit/popup-ui/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({})], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/ui-kit/shadcn-ui/package.json b/packages/@core/ui-kit/shadcn-ui/package.json index 6c2c4a7f..b41351b5 100644 --- a/packages/@core/ui-kit/shadcn-ui/package.json +++ b/packages/@core/ui-kit/shadcn-ui/package.json @@ -13,7 +13,7 @@ "license": "MIT", "type": "module", "scripts": { - "#build": "pnpm unbuild", + "#build": "pnpm vite build", "#prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/shadcn-ui/vite.config.ts b/packages/@core/ui-kit/shadcn-ui/vite.config.ts new file mode 100644 index 00000000..4557edf6 --- /dev/null +++ b/packages/@core/ui-kit/shadcn-ui/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({})], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +}); diff --git a/packages/@core/ui-kit/tabs-ui/package.json b/packages/@core/ui-kit/tabs-ui/package.json index 0bb4dc4e..728f8c14 100644 --- a/packages/@core/ui-kit/tabs-ui/package.json +++ b/packages/@core/ui-kit/tabs-ui/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm vite build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/tabs-ui/vite.config.ts b/packages/@core/ui-kit/tabs-ui/vite.config.ts new file mode 100644 index 00000000..4557edf6 --- /dev/null +++ b/packages/@core/ui-kit/tabs-ui/vite.config.ts @@ -0,0 +1,14 @@ +import vue from '@vitejs/plugin-vue'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + plugins: [vue(), dts({})], + build: { + lib: { + entry: './src/index.ts', + fileName: () => 'index.mjs', + formats: ['es'], + }, + }, +});