From 6de632d117e5a737e43e206bb457d3cbc6b111af Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 28 Jan 2026 22:06:19 +0200 Subject: [PATCH 1/3] fix(client): relative import to src --- apps/client/vite.config.mts | 12 ++++++------ apps/server/src/routes/assets.ts | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/client/vite.config.mts b/apps/client/vite.config.mts index b76595d64..bd9b18289 100644 --- a/apps/client/vite.config.mts +++ b/apps/client/vite.config.mts @@ -19,7 +19,7 @@ if (isDev) { plugins = [ viteStaticCopy({ targets: assets.map((asset) => ({ - src: `src/${asset}/*`, + src: `${asset}/*`, dest: asset })) }), @@ -27,7 +27,7 @@ if (isDev) { structured: true, targets: [ { - src: "../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/*", + src: "../../../node_modules/@excalidraw/excalidraw/dist/prod/fonts/*", dest: "", } ] @@ -37,8 +37,8 @@ if (isDev) { } export default defineConfig(() => ({ - root: __dirname, - cacheDir: '../../.cache/vite', + root: join(__dirname, "src"), + cacheDir: join(__dirname, "../../.cache/vite"), base: "", plugins, // Use esbuild for JSX transformation (much faster than Babel) @@ -79,14 +79,14 @@ export default defineConfig(() => ({ }, build: { target: "esnext", - outDir: './dist', + outDir: '../dist', emptyOutDir: true, reportCompressedSize: true, sourcemap: false, rollupOptions: { input: { index: join(__dirname, "src", "index.html"), - login: join(__dirname, "src", "login.ts"), + login: join(__dirname, "src", "login.ts"), setup: join(__dirname, "src", "setup.ts"), set_password: join(__dirname, "src", "set_password.ts"), runtime: join(__dirname, "src", "runtime.ts"), diff --git a/apps/server/src/routes/assets.ts b/apps/server/src/routes/assets.ts index b8d6b4d13..ecd57da8b 100644 --- a/apps/server/src/routes/assets.ts +++ b/apps/server/src/routes/assets.ts @@ -47,11 +47,11 @@ async function register(app: express.Application) { vite.middlewares(req, res, next); }); app.get(`/`, [ rootLimiter, auth.checkAuth, csrfMiddleware ], (req, res, next) => { - req.url = `/${assetUrlFragment}/src/index.html`; + req.url = `/${assetUrlFragment}/index.html`; vite.middlewares(req, res, next); }); app.get(`/index.ts`, [ rootLimiter ], (req, res, next) => { - req.url = `/${assetUrlFragment}/src/index.ts`; + req.url = `/${assetUrlFragment}/index.ts`; vite.middlewares(req, res, next); }); app.use(`/node_modules/@excalidraw/excalidraw/dist/prod`, persistentCacheStatic(path.join(srcRoot, "../../node_modules/@excalidraw/excalidraw/dist/prod"))); @@ -66,7 +66,7 @@ async function register(app: express.Application) { // broken when closing the browser and coming back in to the page. // The page is restored from cache, but the API call fail. res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); - res.sendFile(path.join(publicDir, "src", "index.html")); + res.sendFile(path.join(publicDir, "index.html")); }); app.use("/assets", persistentCacheStatic(path.join(publicDir, "assets"))); app.use(`/src`, persistentCacheStatic(path.join(publicDir, "src"))); From 37381b7c36ca61a3f08dd9e22e78611624a97193 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 28 Jan 2026 22:23:00 +0200 Subject: [PATCH 2/3] chore(client): use different root mechanism with fewer issues --- apps/client/{src => }/index.html | 2 +- apps/client/vite.config.mts | 14 +++++++------- apps/server/src/routes/assets.ts | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) rename apps/client/{src => }/index.html (95%) diff --git a/apps/client/src/index.html b/apps/client/index.html similarity index 95% rename from apps/client/src/index.html rename to apps/client/index.html index b1541e784..e1db35332 100644 --- a/apps/client/src/index.html +++ b/apps/client/index.html @@ -19,7 +19,7 @@ - +