Adds src/utils/duckdbClient.js, a lazy-initialized getDb() singleton wrapping the AsyncDuckDB MVP (single-threaded) wasm bundle. Pins @duckdb/duckdb-wasm to ^1.32.0 (npm's latest dist-tag currently points at a -dev prerelease). Excludes the package from Vite's dev-server dependency pre-bundling so its worker/wasm ?url imports resolve correctly. Verified live in the browser under the /crdc-demo/ base path: wasm and worker assets load with 200, and a SELECT 42 query round-trips correctly through the singleton, confirming the risk flagged in the design spec (duckdb-wasm loading correctly from a subpath-served Vite dev server) does not materialize.
18 lines
683 B
JavaScript
18 lines
683 B
JavaScript
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react-swc'
|
|
|
|
// The app is served at /crdc-demo/ on pages.civilytics.org.
|
|
// Set base to the subdirectory so asset paths resolve correctly.
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
server: { port: 5173 },
|
|
build: { outDir: 'dist' },
|
|
base: '/crdc-demo/', // Required for subdirectory deployment on git-pages
|
|
optimizeDeps: {
|
|
// duckdb-wasm ships its own worker + wasm binaries resolved via `?url`
|
|
// imports; esbuild's dev-server pre-bundling can rewrite those import
|
|
// paths and break worker instantiation. Exclude it from pre-bundling.
|
|
exclude: ['@duckdb/duckdb-wasm'],
|
|
},
|
|
})
|