♻️ refactor: migrate 15 web apps to @manacore/shared-vite-config

- Add missing packages to MANACORE_SHARED_PACKAGES list
- Migrate all SvelteKit apps to use createViteConfig/mergeViteConfig
- Matrix preserves special WASM config for matrix-js-sdk crypto
- Update consolidation docs with completed Vite config task

Savings: ~350 LOC (-318 net lines)
This commit is contained in:
Till-JS 2026-01-29 16:47:55 +01:00
parent d0d2855adb
commit 188290b427
17 changed files with 225 additions and 513 deletions

View file

@ -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()],
})
);

View file

@ -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()],
})
);

View file

@ -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()],
})
);

View file

@ -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()],
})
);

View file

@ -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,
},
})
);

View file

@ -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()],
})
);

View file

@ -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',
},
})
);

View file

@ -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()],
})
);

View file

@ -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()],
})
);

View file

@ -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()],
})
);

View file

@ -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'),
],
},
},
})
);

View file

@ -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()],
})
);

View file

@ -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()],
})
);

View file

@ -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()],
})
);

View file

@ -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()],
})
);