2023-10-28 19:56:16 +03:00
|
|
|
import { defineConfig } from "vite";
|
2024-05-12 00:35:29 +02:00
|
|
|
import { nodePolyfills } from 'vite-plugin-node-polyfills'
|
2023-10-28 19:56:16 +03:00
|
|
|
import react from "@vitejs/plugin-react";
|
2023-11-13 02:46:50 +03:00
|
|
|
import topLevelAwait from "vite-plugin-top-level-await";
|
2024-05-12 00:35:29 +02:00
|
|
|
import dynamicImport from 'vite-plugin-dynamic-import';
|
|
|
|
import compileTime from "vite-plugin-compile-time";
|
|
|
|
import { fileURLToPath, URL } from 'node:url';
|
2024-02-23 23:48:03 +01:00
|
|
|
|
2023-10-28 19:56:16 +03:00
|
|
|
// https://vitejs.dev/config/
|
|
|
|
export default defineConfig(async () => ({
|
2024-01-04 20:17:54 -05:00
|
|
|
plugins: [
|
2024-05-12 00:35:29 +02:00
|
|
|
// Thanks: https://stackoverflow.com/questions/74417822/how-can-i-use-buffer-process-in-vite-app
|
|
|
|
nodePolyfills({
|
|
|
|
include: [],
|
|
|
|
|
|
|
|
globals: {
|
|
|
|
Buffer: true, // can also be 'build', 'dev', or false
|
|
|
|
global: false,
|
|
|
|
process: true,
|
|
|
|
},
|
|
|
|
// Whether to polyfill `node:` protocol imports.
|
|
|
|
protocolImports: false,
|
|
|
|
}),
|
2024-01-04 20:17:54 -05:00
|
|
|
react(),
|
|
|
|
topLevelAwait({
|
|
|
|
// The export name of top-level await promise for each chunk module
|
|
|
|
promiseExportName: "__tla",
|
|
|
|
// The function to generate import names of top-level await promise in each chunk module
|
|
|
|
promiseImportName: i => `__tla_${i}`
|
|
|
|
}),
|
2024-02-23 23:48:03 +01:00
|
|
|
compileTime(),
|
2024-01-28 21:22:59 +01:00
|
|
|
dynamicImport(),
|
2024-01-04 20:17:54 -05:00
|
|
|
],
|
2024-02-25 20:55:48 +01:00
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
'#pdfcpu': fileURLToPath(new URL("../shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.client", import.meta.url))
|
|
|
|
}
|
|
|
|
},
|
2024-01-04 20:17:54 -05:00
|
|
|
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
|
|
|
|
//
|
|
|
|
// 1. prevent vite from obscuring rust errors
|
|
|
|
clearScreen: false,
|
|
|
|
// 2. tauri expects a fixed port, fail if that port is not available
|
|
|
|
server: {
|
|
|
|
port: 1420,
|
|
|
|
strictPort: true,
|
|
|
|
},
|
|
|
|
// 3. to make use of `TAURI_DEBUG` and other env variables
|
|
|
|
// https://tauri.app/v1/api/config#buildconfig.beforedevcommand
|
|
|
|
envPrefix: ["VITE_"],
|
2024-08-12 22:49:00 +02:00
|
|
|
base: '/', // relative paths sadly don't work with react router dom sub-dirs for some reason...
|
2023-10-28 19:56:16 +03:00
|
|
|
}));
|