73 lines
1.6 KiB
TypeScript
73 lines
1.6 KiB
TypeScript
import { sentryVitePlugin } from "@sentry/vite-plugin";
|
|
import { resolve } from "path";
|
|
|
|
import react from "@vitejs/plugin-react";
|
|
import { visualizer } from "rollup-plugin-visualizer";
|
|
import { defineConfig, splitVendorChunkPlugin } from "vite";
|
|
|
|
export default defineConfig({
|
|
server: {
|
|
headers: {
|
|
"Document-Policy": "js-profiling",
|
|
},
|
|
},
|
|
|
|
plugins: [
|
|
react(),
|
|
splitVendorChunkPlugin(),
|
|
visualizer({
|
|
gzipSize: true,
|
|
brotliSize: true,
|
|
emitFile: false,
|
|
filename: "stats.html",
|
|
open: true,
|
|
}),
|
|
sentryVitePlugin({
|
|
org: "sentry",
|
|
project: "ds-viewer",
|
|
url: "https://sentry.yoshino-s.xyz",
|
|
}),
|
|
],
|
|
|
|
resolve: {
|
|
alias: {
|
|
"@/": `${resolve(__dirname, "src")}/`,
|
|
},
|
|
},
|
|
|
|
build: {
|
|
sourcemap: true,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
if (id.includes("@mantine")) {
|
|
return "@mantine";
|
|
}
|
|
if (id.includes("@sentry")) {
|
|
return "@sentry";
|
|
}
|
|
if (
|
|
id.includes("react-router-dom") ||
|
|
id.includes("@remix-run") ||
|
|
id.includes("react-router")
|
|
) {
|
|
return "@react-router";
|
|
}
|
|
if (id.includes("highlight.js")) {
|
|
return "highlight.js";
|
|
}
|
|
if (
|
|
id.includes("remark") ||
|
|
id.includes("rehype") ||
|
|
id.includes("unified") ||
|
|
id.includes("mdast") ||
|
|
id.includes("micromark")
|
|
) {
|
|
return "@rehype";
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|