From 741a519a30ad59c26449eaa304106fa7331a561b Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Wed, 4 Mar 2026 19:16:36 -0800 Subject: [PATCH] fix: add wasm plugin to shell.js build for Automerge runtime The shell now imports RSpaceOfflineRuntime which transitively pulls in Automerge WASM. Without the wasm() plugin and esnext target on the shell build step, vite fails with "ESM integration proposal for Wasm is not supported". Co-Authored-By: Claude Opus 4.6 --- vite.config.ts | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/vite.config.ts b/vite.config.ts index be1ec93..c1e82db 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -33,17 +33,20 @@ export default defineConfig({ }, }); - // Build shell.ts as a standalone JS bundle + // Build shell.ts as a standalone JS bundle (needs wasm() for Automerge via runtime) await build({ configFile: false, root: resolve(__dirname, "website"), + plugins: [wasm()], resolve: { alias: { "@lib": resolve(__dirname, "./lib"), "@shared": resolve(__dirname, "./shared"), + '@automerge/automerge': resolve(__dirname, 'node_modules/@automerge/automerge'), }, }, build: { + target: "esnext", emptyOutDir: false, outDir: resolve(__dirname, "dist"), lib: { @@ -558,6 +561,33 @@ export default defineConfig({ resolve(__dirname, "dist/modules/rnetwork/network.css"), ); + // Build socials canvas component + await build({ + configFile: false, + root: resolve(__dirname, "modules/rsocials/components"), + build: { + emptyOutDir: false, + outDir: resolve(__dirname, "dist/modules/rsocials"), + lib: { + entry: resolve(__dirname, "modules/rsocials/components/folk-socials-canvas.ts"), + formats: ["es"], + fileName: () => "folk-socials-canvas.js", + }, + rollupOptions: { + output: { + entryFileNames: "folk-socials-canvas.js", + }, + }, + }, + }); + + // Copy socials canvas CSS + mkdirSync(resolve(__dirname, "dist/modules/rsocials"), { recursive: true }); + copyFileSync( + resolve(__dirname, "modules/rsocials/components/socials-canvas.css"), + resolve(__dirname, "dist/modules/rsocials/socials-canvas.css"), + ); + // Build tube module component await build({ configFile: false,