// @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', 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_DEV_PORT ?? '1420', 10), strictPort: true, }, envPrefix: ['VITE_', 'TAURI_'], }; });