Fix wasm-pack output for Vite 8/rolldown production builds

Rewrite generated yaak_templates.js to use Vite's ?init import style
instead of the ES Module Integration style that rolldown doesn't support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Gregory Schier
2026-03-13 09:02:12 -07:00
parent dde8d61b4b
commit a629a1fa79
2 changed files with 24 additions and 4 deletions

View File

@@ -1,4 +1,6 @@
const { execSync } = require('node:child_process');
const fs = require('node:fs');
const path = require('node:path');
if (process.env.SKIP_WASM_BUILD === '1') {
console.log('Skipping wasm-pack build (SKIP_WASM_BUILD=1)');
@@ -6,3 +8,20 @@ if (process.env.SKIP_WASM_BUILD === '1') {
}
execSync('wasm-pack build --target bundler', { stdio: 'inherit' });
// Rewrite the generated entry to use Vite's ?init import style instead of
// the ES Module Integration style that wasm-pack generates, which Vite/rolldown
// does not support in production builds.
const entry = path.join(__dirname, 'pkg', 'yaak_templates.js');
fs.writeFileSync(
entry,
[
'import init from "./yaak_templates_bg.wasm?init";',
'export * from "./yaak_templates_bg.js";',
'import * as bg from "./yaak_templates_bg.js";',
'const instance = await init({ "./yaak_templates_bg.js": bg });',
'bg.__wbg_set_wasm(instance.exports);',
'instance.exports.__wbindgen_start();',
'',
].join('\n'),
);

View File

@@ -1,5 +1,6 @@
import * as wasm from "./yaak_templates_bg.wasm";
import init from "./yaak_templates_bg.wasm?init";
export * from "./yaak_templates_bg.js";
import { __wbg_set_wasm } from "./yaak_templates_bg.js";
__wbg_set_wasm(wasm);
wasm.__wbindgen_start();
import * as bg from "./yaak_templates_bg.js";
const instance = await init({ "./yaak_templates_bg.js": bg });
bg.__wbg_set_wasm(instance.exports);
instance.exports.__wbindgen_start();