journal-media-vue/vite.config.mts
gcch 0f52ff0cef 2025-02-23
2025-02-24
2025-02-24 00:18:53 +01:00

43 lines
1.4 KiB
TypeScript

import unheadVite from "@unhead/addons/vite";
import vue from "@vitejs/plugin-vue";
import { defineConfig } from "vite";
export default defineConfig({
build: {
cssMinify: "lightningcss",
emptyOutDir: true,
outDir: "dist",
reportCompressedSize: true,
rollupOptions: { output: { compact: true, format: "esm", validate: true } },
sourcemap: false,
},
cacheDir: ".cache/vite",
clearScreen: false,
css: { transformer: "lightningcss" },
optimizeDeps: { exclude: ["sqlocal"] },
plugins: [
vue(),
{
configureServer: server => {
server.middlewares.use((_req, res, next) => {
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.setHeader("Access-Control-Allow-Origin", "http://localhost:4321");
res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("Cross-Origin-Embedder-Policy", "require-corp");
res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
res.setHeader("Cross-Origin-Resource-Policy", "cross-origin");
next();
});
},
name: "configure-response-headers",
},
unheadVite(),
],
resolve: {
alias: {
"@": Bun.fileURLToPath(new URL("./src", import.meta.url)),
},
},
worker: { format: "es" },
});