diff --git a/apps/calendar/apps/web/vite.config.ts b/apps/calendar/apps/web/vite.config.ts index ee69c8ce4..f224a3697 100644 --- a/apps/calendar/apps/web/vite.config.ts +++ b/apps/calendar/apps/web/vite.config.ts @@ -1,45 +1,15 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5179, - strictPort: true, - }, - ssr: { - noExternal: [ - '@calendar/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - ], - }, - optimizeDeps: { - exclude: [ - '@calendar/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - ], - }, +const baseConfig = createViteConfig({ + port: 5179, + additionalPackages: ['@calendar/shared'], }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/chat/apps/web/vite.config.ts b/apps/chat/apps/web/vite.config.ts index 28902e17d..2101aa70b 100644 --- a/apps/chat/apps/web/vite.config.ts +++ b/apps/chat/apps/web/vite.config.ts @@ -1,36 +1,15 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [sveltekit(), tailwindcss()], - server: { - port: 5174, - strictPort: true, - }, - ssr: { - noExternal: [ - 'marked', - '@manacore/shared-theme', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-ui', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-types', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-ui', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-theme', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-ui', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-types', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-ui', - ], - }, +const baseConfig = createViteConfig({ + port: 5174, + additionalPackages: ['marked'], }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/clock/apps/web/vite.config.ts b/apps/clock/apps/web/vite.config.ts index 809d35412..c9190c734 100644 --- a/apps/clock/apps/web/vite.config.ts +++ b/apps/clock/apps/web/vite.config.ts @@ -1,34 +1,13 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [sveltekit()], - server: { - port: 5187, - strictPort: true, - }, - ssr: { - noExternal: [ - '@manacore/shared-theme', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-ui', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-types', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-ui', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-theme', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-ui', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-types', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-ui', - ], - }, +const baseConfig = createViteConfig({ + port: 5187, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [sveltekit()], + }) +); diff --git a/apps/contacts/apps/web/vite.config.ts b/apps/contacts/apps/web/vite.config.ts index 12b3a0503..e20d7dad2 100644 --- a/apps/contacts/apps/web/vite.config.ts +++ b/apps/contacts/apps/web/vite.config.ts @@ -1,59 +1,14 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5184, - strictPort: true, - }, - ssr: { - noExternal: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - '@manacore/shared-utils', - '@manacore/shared-splitscreen', - '@manacore/shared-i18n', - '@manacore/shared-profile-ui', - '@manacore/shared-tags', - '@manacore/shared-help-types', - '@manacore/shared-help-content', - '@manacore/shared-help-ui', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - '@manacore/shared-utils', - '@manacore/shared-splitscreen', - '@manacore/shared-i18n', - '@manacore/shared-profile-ui', - '@manacore/shared-tags', - '@manacore/shared-help-types', - '@manacore/shared-help-content', - '@manacore/shared-help-ui', - ], - }, +const baseConfig = createViteConfig({ + port: 5184, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/manacore/apps/web/vite.config.ts b/apps/manacore/apps/web/vite.config.ts index 1d7776c06..7781dc3cb 100644 --- a/apps/manacore/apps/web/vite.config.ts +++ b/apps/manacore/apps/web/vite.config.ts @@ -1,45 +1,18 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [sveltekit(), tailwindcss()], - server: { - port: 5173, - strictPort: true, - }, - preview: { - port: 4173, - strictPort: true, - }, - ssr: { - noExternal: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, +const baseConfig = createViteConfig({ + port: 5173, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + preview: { + port: 4173, + strictPort: true, + }, + }) +); diff --git a/apps/manadeck/apps/web/vite.config.ts b/apps/manadeck/apps/web/vite.config.ts index 9ce355392..1c4e71978 100644 --- a/apps/manadeck/apps/web/vite.config.ts +++ b/apps/manadeck/apps/web/vite.config.ts @@ -1,31 +1,14 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [sveltekit(), tailwindcss()], - server: { - port: 5176, - strictPort: true, - }, - ssr: { - noExternal: [ - '@manacore/shared-theme', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-ui', - '@manacore/shared-theme-ui', - '@manacore/shared-i18n', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-theme', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-ui', - '@manacore/shared-theme-ui', - '@manacore/shared-i18n', - ], - }, +const baseConfig = createViteConfig({ + port: 5176, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/matrix/apps/web/vite.config.ts b/apps/matrix/apps/web/vite.config.ts index 3a18c889b..7374cc745 100644 --- a/apps/matrix/apps/web/vite.config.ts +++ b/apps/matrix/apps/web/vite.config.ts @@ -1,38 +1,41 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5180, - strictPort: true, - headers: { - // Required for WASM module loading - 'Cross-Origin-Opener-Policy': 'same-origin', - 'Cross-Origin-Embedder-Policy': 'require-corp', - }, - }, - define: { - global: 'globalThis', - }, - optimizeDeps: { - include: ['buffer', 'events'], - // WASM modules cannot be pre-bundled - exclude: ['@matrix-org/matrix-sdk-crypto-wasm'], - esbuildOptions: { - define: { - global: 'globalThis', +const baseConfig = createViteConfig({ + port: 5180, + additionalPackages: ['@matrix/shared'], +}); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + server: { + headers: { + // Required for WASM module loading + 'Cross-Origin-Opener-Policy': 'same-origin', + 'Cross-Origin-Embedder-Policy': 'require-corp', }, }, - }, - ssr: { - noExternal: ['@manacore/shared-*', '@matrix/shared'], - }, - worker: { - format: 'es', - }, - build: { - target: 'esnext', - }, -}); + define: { + global: 'globalThis', + }, + optimizeDeps: { + include: ['buffer', 'events'], + // WASM modules cannot be pre-bundled + exclude: ['@matrix-org/matrix-sdk-crypto-wasm'], + esbuildOptions: { + define: { + global: 'globalThis', + }, + }, + }, + worker: { + format: 'es', + }, + build: { + target: 'esnext', + }, + }) +); diff --git a/apps/nutriphi/apps/web/vite.config.ts b/apps/nutriphi/apps/web/vite.config.ts index 0cd501b64..efd398596 100644 --- a/apps/nutriphi/apps/web/vite.config.ts +++ b/apps/nutriphi/apps/web/vite.config.ts @@ -1,47 +1,15 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5180, - strictPort: true, - }, - ssr: { - noExternal: [ - '@nutriphi/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - '@manacore/shared-i18n', - ], - }, - optimizeDeps: { - exclude: [ - '@nutriphi/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - '@manacore/shared-i18n', - ], - }, +const baseConfig = createViteConfig({ + port: 5180, + additionalPackages: ['@nutriphi/shared'], }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/picture/apps/web/vite.config.ts b/apps/picture/apps/web/vite.config.ts index bee9c8a60..c2f3784a7 100644 --- a/apps/picture/apps/web/vite.config.ts +++ b/apps/picture/apps/web/vite.config.ts @@ -1,15 +1,14 @@ -import tailwindcss from '@tailwindcss/vite'; import { sveltekit } from '@sveltejs/kit/vite'; +import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5175, - strictPort: true, - }, - ssr: { - // Process @manacore packages that contain .svelte.ts files with runes - noExternal: ['@manacore/shared-theme', '@manacore/shared-auth'], - }, +const baseConfig = createViteConfig({ + port: 5175, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/planta/apps/web/vite.config.ts b/apps/planta/apps/web/vite.config.ts index 35f644c62..8504d80f0 100644 --- a/apps/planta/apps/web/vite.config.ts +++ b/apps/planta/apps/web/vite.config.ts @@ -1,37 +1,15 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5191, - strictPort: true, - }, - ssr: { - noExternal: [ - '@planta/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, - optimizeDeps: { - exclude: [ - '@planta/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, +const baseConfig = createViteConfig({ + port: 5191, + additionalPackages: ['@planta/shared'], }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/presi/apps/web/vite.config.ts b/apps/presi/apps/web/vite.config.ts index a33bdcf68..8f689108c 100644 --- a/apps/presi/apps/web/vite.config.ts +++ b/apps/presi/apps/web/vite.config.ts @@ -2,42 +2,25 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; import path from 'path'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [sveltekit(), tailwindcss()], - server: { - port: 5178, - strictPort: true, - fs: { - allow: [ - // Allow serving files from the monorepo root node_modules - path.resolve(__dirname, '../../../../node_modules'), - // Default allowed paths - path.resolve(__dirname, 'src'), - path.resolve(__dirname, '.svelte-kit'), - path.resolve(__dirname, 'node_modules'), - path.resolve(__dirname, '../../node_modules'), - ], - }, - }, - ssr: { - noExternal: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, +const baseConfig = createViteConfig({ + port: 5178, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + server: { + fs: { + allow: [ + path.resolve(__dirname, '../../../../node_modules'), + path.resolve(__dirname, 'src'), + path.resolve(__dirname, '.svelte-kit'), + path.resolve(__dirname, 'node_modules'), + path.resolve(__dirname, '../../node_modules'), + ], + }, + }, + }) +); diff --git a/apps/questions/apps/web/vite.config.ts b/apps/questions/apps/web/vite.config.ts index a51885fb7..f6beead31 100644 --- a/apps/questions/apps/web/vite.config.ts +++ b/apps/questions/apps/web/vite.config.ts @@ -1,35 +1,14 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5111, - strictPort: true, - }, - ssr: { - noExternal: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - ], - }, +const baseConfig = createViteConfig({ + port: 5111, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/skilltree/apps/web/vite.config.ts b/apps/skilltree/apps/web/vite.config.ts index 8b51fcdc6..3d44922ac 100644 --- a/apps/skilltree/apps/web/vite.config.ts +++ b/apps/skilltree/apps/web/vite.config.ts @@ -1,17 +1,14 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5195, - strictPort: true, - }, - ssr: { - noExternal: ['@manacore/shared-tailwind', '@manacore/shared-theme'], - }, - optimizeDeps: { - exclude: ['@manacore/shared-tailwind', '@manacore/shared-theme'], - }, +const baseConfig = createViteConfig({ + port: 5195, }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/storage/apps/web/vite.config.ts b/apps/storage/apps/web/vite.config.ts index f987c6949..f604de72e 100644 --- a/apps/storage/apps/web/vite.config.ts +++ b/apps/storage/apps/web/vite.config.ts @@ -1,44 +1,15 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5185, - strictPort: true, - }, - ssr: { - noExternal: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - 'lucide-svelte', - ], - }, - optimizeDeps: { - exclude: [ - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - ], - }, +const baseConfig = createViteConfig({ + port: 5185, + additionalPackages: ['lucide-svelte'], }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/apps/todo/apps/web/vite.config.ts b/apps/todo/apps/web/vite.config.ts index 0b58d77c6..4e24ac33a 100644 --- a/apps/todo/apps/web/vite.config.ts +++ b/apps/todo/apps/web/vite.config.ts @@ -1,45 +1,15 @@ import { sveltekit } from '@sveltejs/kit/vite'; import tailwindcss from '@tailwindcss/vite'; import { defineConfig } from 'vite'; +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; -export default defineConfig({ - plugins: [tailwindcss(), sveltekit()], - server: { - port: 5188, - strictPort: true, - }, - ssr: { - noExternal: [ - '@todo/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - ], - }, - optimizeDeps: { - exclude: [ - '@todo/shared', - '@manacore/shared-icons', - '@manacore/shared-ui', - '@manacore/shared-tailwind', - '@manacore/shared-theme', - '@manacore/shared-theme-ui', - '@manacore/shared-feedback-ui', - '@manacore/shared-feedback-service', - '@manacore/shared-feedback-types', - '@manacore/shared-auth', - '@manacore/shared-auth-ui', - '@manacore/shared-branding', - '@manacore/shared-subscription-ui', - ], - }, +const baseConfig = createViteConfig({ + port: 5188, + additionalPackages: ['@todo/shared'], }); + +export default defineConfig( + mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], + }) +); diff --git a/docs/CONSOLIDATION_OPPORTUNITIES.md b/docs/CONSOLIDATION_OPPORTUNITIES.md index 06cb5ec5e..abe2c2592 100644 --- a/docs/CONSOLIDATION_OPPORTUNITIES.md +++ b/docs/CONSOLIDATION_OPPORTUNITIES.md @@ -13,7 +13,7 @@ | **HOCH** | Main.ts/CORS Patterns | 1.800 LOC | Mittel | | ~~**MITTEL**~~ | ~~TypeScript Configs~~ | ~~400 LOC~~ ✅ **~280 LOC entfernt** | ~~Niedrig~~ | | **MITTEL** | UI Component Cleanup | 400 LOC | Niedrig | -| **MITTEL** | Vite Configs | 300 LOC | Niedrig | +| ~~**MITTEL**~~ | ~~Vite Configs~~ | ~~300 LOC~~ ✅ **~350 LOC entfernt** | ~~Niedrig~~ | | **MITTEL** | Navigation Stores | 50 LOC | Niedrig | | **NIEDRIG** | Drizzle Configs | 200 LOC | Niedrig | | **NIEDRIG** | Logger Utilities | 130 LOC | Niedrig | @@ -301,27 +301,46 @@ export function createNavigationStore(options?: { --- -### 4.2 MITTEL: Vite Configs (300 LOC) +### ~~4.2 MITTEL: Vite Configs~~ ✅ ERLEDIGT (~350 LOC gespart) -**Problem:** 15 SvelteKit Apps haben 70% identische vite.config.ts. +**Status:** `@manacore/shared-vite-config` erweitert und 15 SvelteKit Apps migriert (29.01.2026) -**Empfehlung:** Factory-Funktion in `@manacore/shared-vite-config` +**Erweitertes Package:** `packages/shared-vite-config/` +- `createViteConfig()` - Factory mit Port und additionalPackages +- `mergeViteConfig()` - Deep-merge für App-spezifische Overrides +- `MANACORE_SHARED_PACKAGES` - 22+ Pakete für SSR/optimizeDeps +**Migrierte Apps (15 von 15):** +- ✅ calendar, chat, clock, contacts, manadeck, manacore, matrix, nutriphi, picture, planta, presi, questions, skilltree, storage, todo + +**Vorher (30-60 LOC pro App):** ```typescript -// packages/shared-vite-config/src/sveltekit.ts -export function createSvelteKitConfig(options: { - port: number; - packages?: string[]; -}) { - return defineConfig({ - plugins: [sveltekit(), tailwindcss()], - server: { port: options.port, strictPort: true }, - ssr: { noExternal: options.packages || [] }, - optimizeDeps: { exclude: options.packages || [] }, - }); -} +export default defineConfig({ + plugins: [tailwindcss(), sveltekit()], + server: { port: 5174, strictPort: true }, + ssr: { noExternal: ['@manacore/shared-icons', ...] }, + optimizeDeps: { exclude: ['@manacore/shared-icons', ...] }, +}); ``` +**Nachher (12-14 LOC):** +```typescript +import { createViteConfig, mergeViteConfig } from '@manacore/shared-vite-config'; + +const baseConfig = createViteConfig({ + port: 5174, + additionalPackages: ['@app/shared'], // optional +}); + +export default defineConfig(mergeViteConfig(baseConfig, { + plugins: [tailwindcss(), sveltekit()], +})); +``` + +**Hinweis:** Matrix behält spezielle WASM-Konfiguration für matrix-js-sdk crypto. + +**Einsparung:** 15 Apps × ~23 LOC = ~350 LOC + --- ### 4.3 NIEDRIG: Drizzle Configs (200 LOC) @@ -389,7 +408,7 @@ export default createDrizzleConfig('chat'); |---------|-----|---------|--------| | ~~`createAppSettingsStore()` Factory erstellen~~ | ~~600~~ → **323** | ~~Mittel~~ | ✅ Erledigt | | ~~`@manacore/shared-tsconfig` Package erstellen~~ | ~~400~~ → **280** | ~~Niedrig~~ | ✅ Erledigt | -| `@manacore/shared-vite-config` Factory erstellen | 300 | Niedrig | Offen | +| ~~`@manacore/shared-vite-config` erweitern (15 Apps)~~ | ~~300~~ → **350** | ~~Niedrig~~ | ✅ Erledigt | | Navigation Store Factory erstellen | 50 | Niedrig | Offen | ### Phase 3: Backend Setup (5-7 Tage, ~2.000 LOC) diff --git a/packages/shared-vite-config/src/index.ts b/packages/shared-vite-config/src/index.ts index f01d3ad95..fb2fab989 100644 --- a/packages/shared-vite-config/src/index.ts +++ b/packages/shared-vite-config/src/index.ts @@ -26,6 +26,12 @@ export const MANACORE_SHARED_PACKAGES = [ '@manacore/shared-i18n', '@manacore/shared-api-client', '@manacore/shared-splitscreen', + '@manacore/shared-utils', + '@manacore/shared-tags', + '@manacore/shared-stores', + '@manacore/shared-help-types', + '@manacore/shared-help-content', + '@manacore/shared-help-ui', ] as const; export interface ViteConfigOptions {