citation-evidence/vite.config.ts
tegwick 7b33f5f35e Consume extracted evidence-binder; drop local src/binder (EBIND-WP-0001)
Cut over the binder subsystem to the extracted @citation-evidence/
evidence-binder repo. The @binder alias (tsconfig + vite) now points at
../evidence-binder/src, the duplicate src/binder/ tree is deleted, and
vite fs.allow is widened to serve the sibling checkout.

No app code changed — all imports were already via the @binder alias.
typecheck + lint green, 58 tests passing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 01:36:42 +02:00

56 lines
1.9 KiB
TypeScript

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { viteStaticCopy } from "vite-plugin-static-copy";
import { fileURLToPath } from "node:url";
import { dirname, resolve } from "node:path";
const __dirname = dirname(fileURLToPath(import.meta.url));
export default defineConfig({
plugins: [
react(),
// PDF.js needs its cmaps (character maps for CID fonts) and
// standard fonts (Helvetica/Times/Courier metrics) to position
// text-layer spans correctly. Without them, PDFs with embedded
// CID fonts or unembedded standard fonts get rendered to canvas
// OK but their textLayer overlays land in the wrong place — text
// appears unselectable or selection jumps to a different region.
// We serve both directories straight from `node_modules/pdfjs-dist`.
viteStaticCopy({
targets: [
{
src: resolve(__dirname, "node_modules/pdfjs-dist/cmaps") + "/[!.]*",
dest: "cmaps",
},
{
src: resolve(__dirname, "node_modules/pdfjs-dist/standard_fonts") + "/[!.]*",
dest: "standard_fonts",
},
],
}),
],
resolve: {
alias: {
"@shared": resolve(__dirname, "../citation-engine/src/shared"),
"@engine": resolve(__dirname, "../citation-engine/src/engine"),
"@source": resolve(__dirname, "src/source"),
"@binder": resolve(__dirname, "../evidence-binder/src"),
"@work": resolve(__dirname, "src/work"),
"@app": resolve(__dirname, "src/app"),
},
},
server: {
fs: {
// Allow Vite to serve /fixtures/pdfs/*.pdf from the project root.
allow: [
resolve(__dirname),
resolve(__dirname, "../citation-engine"),
resolve(__dirname, "../evidence-binder"),
],
},
},
optimizeDeps: {
// pdfjs-dist ships its worker as a .mjs Vite needs to handle.
exclude: ["pdfjs-dist"],
},
});