From efaca58e1dee382c88ca9ccae671d6c0457b9073 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 4 Nov 2026 13:37:38 +0000 Subject: [PATCH] Paraglide: locale modules in the dev server, as with Paraglide 2 Paraglide 2's Vite plugin generated one module per locale outside of production builds and one per message only for `vite build`. Setting `outputStructure: "message-modules"` unconditionally made the dev server load every message as its own module: 1577 Paraglide requests instead of 5 on the first page, about twice the load time, and the E2E tests against the dev server took 2.5 instead of 1.2 minutes and timed out. `process.env.NODE_ENV === "production"` is the condition Paraglide 2 used; Vite sets it before it loads the config (`production` for vite build, `development` for the dev server, `test` under Vitest). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Y3rdfanxjpLranVFzXfytu --- ui/vite.config.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ui/vite.config.ts b/ui/vite.config.ts index 2e2d2b4..08fbbd2 100644 --- a/ui/vite.config.ts +++ b/ui/vite.config.ts @@ -6,7 +6,15 @@ import { paraglideVitePlugin } from '@inlang/paraglide-js'; export default defineConfig({ plugins: [ // messages/{de,en}.json → src/paraglide (typed message functions); the language comes from src/i18n.ts - paraglideVitePlugin({ project: './project.inlang', outdir: './src/paraglide', outputStructure: 'message-modules', strategy: ['baseLocale'] }), + paraglideVitePlugin({ + project: './project.inlang', + outdir: './src/paraglide', + // Paraglide 2's default: one module per locale in the dev server and tests (a few requests), + // one per message in production builds (tree shaking). v3 would serve virtual modules only Vite + // can resolve. + outputStructure: process.env.NODE_ENV === 'production' ? 'message-modules' : 'locale-modules', + strategy: ['baseLocale'], + }), react(), ], server: {