generated from coulomb/repo-seed
Add link: dependency on citation-engine, retarget @shared/@engine aliases, remove in-repo shared/engine copies. ADR-0002 accepted (option B). 172 tests, typecheck, and lint pass.
54 lines
1.8 KiB
TypeScript
54 lines
1.8 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"),
|
|
"@anchor": resolve(__dirname, "src/anchor"),
|
|
"@source": resolve(__dirname, "src/source"),
|
|
"@binder": resolve(__dirname, "src/binder"),
|
|
"@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")],
|
|
},
|
|
},
|
|
optimizeDeps: {
|
|
// pdfjs-dist ships its worker as a .mjs Vite needs to handle.
|
|
exclude: ["pdfjs-dist"],
|
|
},
|
|
});
|