build(frontend): serve pdf.js wasm decoders at /pdfjs-wasm/ via static-copy
pdf.js 5.x moved the JBIG2/CCITTFax/JPEG2000 image decoders into WebAssembly. The wasm lives in node_modules and was never web-served, so those decoders failed to initialise and CCITT (G4 fax) scans painted blank in production while rendering fine in dev. Add vite-plugin-static-copy (devDependency) to copy node_modules/pdfjs-dist/wasm/* into build/client/pdfjs-wasm/, so the assets are emitted into the SvelteKit client build and survive the production Docker image — not just `npm run dev`. Verified that `node build` serves /pdfjs-wasm/jbig2.wasm with 200 + application/wasm. Refs #708 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import tailwindcss from '@tailwindcss/vite';
|
||||
import { defineConfig } from 'vitest/config';
|
||||
import { playwright } from '@vitest/browser-playwright';
|
||||
import { sveltekit } from '@sveltejs/kit/vite';
|
||||
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
||||
|
||||
export default defineConfig({
|
||||
optimizeDeps: {
|
||||
@@ -42,6 +43,15 @@ export default defineConfig({
|
||||
tailwindcss(),
|
||||
sveltekit(),
|
||||
devtoolsJson(),
|
||||
// pdf.js 5.x decodes JBIG2 / CCITTFax / JPEG2000 images in WebAssembly.
|
||||
// Serve the wasm from our own origin at /pdfjs-wasm/ (referenced by
|
||||
// getDocument's wasmUrl) — emitted into build/client/ so it survives the
|
||||
// production Docker image, not just `npm run dev`. See issue #708.
|
||||
viteStaticCopy({
|
||||
targets: [
|
||||
{ src: 'node_modules/pdfjs-dist/wasm/*', dest: 'pdfjs-wasm', rename: { stripBase: true } }
|
||||
]
|
||||
}),
|
||||
paraglideVitePlugin({
|
||||
project: './project.inlang',
|
||||
outdir: './src/lib/paraglide'
|
||||
|
||||
Reference in New Issue
Block a user