snort3/packages/app/vite.config.ts
2024-01-30 22:04:29 +00:00

73 lines
1.7 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,
ifLog: false,
}),
],
assetsInclude: ["**/*.md", "**/*.wasm"],
build: {
outDir: "build",
commonjsOptions: { transformMixedEsModules: true },
sourcemap: true,
},
clearScreen: false,
publicDir: appConfig.get("publicDir"),
resolve: {
alias: {
"@": "/src",
},
},
server: {
headers: {
"Cross-Origin-Opener-Policy": "same-origin",
"Cross-Origin-Embedder-Policy": "require-corp",
},
},
optimizeDeps: {
exclude: ["@sqlite.org/sqlite-wasm"],
},
define: {
CONFIG: JSON.stringify(appConfig),
global: {}, // needed for custom-event lib
},
test: {
globals: true,
environment: "jsdom",
},
worker: {
format: "es",
},
});