// @ts-ignore import { tanstackRouter } from "@tanstack/router-plugin/vite"; import react from "@vitejs/plugin-react"; import { createRequire } from "node:module"; import path from "node:path"; import { defineConfig, normalizePath } from "vite"; import { viteStaticCopy } from "vite-plugin-static-copy"; import svgr from "vite-plugin-svgr"; import topLevelAwait from "vite-plugin-top-level-await"; import wasm from "vite-plugin-wasm"; const require = createRequire(import.meta.url); const cMapsDir = normalizePath( path.join(path.dirname(require.resolve("pdfjs-dist/package.json")), "cmaps"), ); const standardFontsDir = normalizePath( path.join( path.dirname(require.resolve("pdfjs-dist/package.json")), "standard_fonts", ), ); // https://vitejs.dev/config/ export default defineConfig(async () => { return { plugins: [ wasm(), tanstackRouter({ target: "react", routesDirectory: "./routes", generatedRouteTree: "./routeTree.gen.ts", autoCodeSplitting: true, }), svgr(), react(), topLevelAwait(), viteStaticCopy({ targets: [ { src: cMapsDir, dest: "" }, { src: standardFontsDir, dest: "" }, ], }), ], build: { sourcemap: true, outDir: "../../dist/apps/yaak-client", emptyOutDir: true, rollupOptions: { output: { // Make chunk names readable chunkFileNames: "assets/chunk-[name]-[hash].js", entryFileNames: "assets/entry-[name]-[hash].js", assetFileNames: "assets/asset-[name]-[hash][extname]", }, }, }, clearScreen: false, server: { port: parseInt( process.env.YAAK_CLIENT_DEV_PORT ?? process.env.YAAK_DEV_PORT ?? "1420", 10, ), strictPort: true, }, envPrefix: ["VITE_", "TAURI_"], }; });