From cc9c7631ed95d46905bdcc5e0fd71805cb4c678a Mon Sep 17 00:00:00 2001 From: younggwon Date: Tue, 23 Jul 2024 11:09:28 +0900 Subject: [PATCH] chore: Update vite.config.ts to use dynamic entry points based on package.json exports --- vite.config.ts | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index f047373..e21c627 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,18 +5,29 @@ import dts from 'vite-plugin-dts'; import react from '@vitejs/plugin-react'; import { viteStaticCopy } from 'vite-plugin-static-copy'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import packageJson from './package.json'; + +const convertExportsToEntries = (exports: object) => { + const entries: Record = {}; + + for (const key in exports) { + if (key === './package.json') continue; // Ignore package.json entry + const entryPath = key === '.' ? './src/index.ts' : `src/${key}/index.ts`; + const formattedKey = key === '.' ? 'index' : `${key.slice(2)}/index`; // Remove './' prefix and add '/index' + entries[formattedKey] = resolve(__dirname, entryPath); + } + + return entries; +}; + +const entry = convertExportsToEntries(packageJson.exports); + export default defineConfig({ build: { lib: { - entry: { - index: resolve(__dirname, './src/index.ts'), - core: resolve(__dirname, './src/core/index.ts'), - icon: resolve(__dirname, './src/icon/index.ts'), - component: resolve(__dirname, './src/component/index.ts'), - composite: resolve(__dirname, './src/composite/index.ts'), - legacy: resolve(__dirname, './src/legacy/index.ts'), - token: resolve(__dirname, './src/token/index.ts'), - }, + entry: entry, name: 'cds', fileName: 'index', },