snort/packages/app/vite.config.ts
2024-01-10 16:36:23 +02:00

63 lines
1.5 KiB
TypeScript

import react from "@vitejs/plugin-react";
import appConfig from "config";
import { visualizer } from "rollup-plugin-visualizer";
import { defineConfig } from "vite";
import { VitePWA } from "vite-plugin-pwa";
import { vitePluginVersionMark } from "vite-plugin-version-mark";
export default defineConfig({
plugins: [
react({
jsxImportSource: "@welldone-software/why-did-you-render",
}),
VitePWA({
strategies: "injectManifest",
srcDir: "src",
filename: "service-worker.ts",
devOptions: {
enabled: true,
type: "module",
},
workbox: {
globPatterns: ["**/*.{js,html,wasm,woff,woff2,ttf,svg,png,jpg,jpeg,webp,ico,json}"],
sourcemap: true,
},
}),
visualizer({
open: true,
gzipSize: true,
filename: "build/stats.html",
}),
vitePluginVersionMark({
name: "snort",
ifGitSHA: true,
command: "git describe --always --tags",
ifMeta: false,
}),
],
assetsInclude: ["**/*.md", "**/*.wasm"],
build: {
outDir: "build",
commonjsOptions: { transformMixedEsModules: true },
},
clearScreen: false,
publicDir: appConfig.get("publicDir"),
resolve: {
alias: {
"@": "/src",
},
},
define: {
CONFIG: JSON.stringify(appConfig),
global: {}, // needed for custom-event lib
SINGLE_RELAY: JSON.stringify(process.env.SINGLE_RELAY),
},
test: {
globals: true,
environment: "jsdom",
},
worker: {
format: "es",
},
});