Files
wiki/vite.config.ts

65 lines
1.7 KiB
TypeScript
Raw Normal View History

import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react";
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), "");
// Convert Convex cloud URL to HTTP site URL
const convexUrl = env.VITE_CONVEX_URL || "";
const convexSiteUrl = convexUrl.replace(".cloud", ".site");
return {
plugins: [react()],
build: {
outDir: "dist",
rollupOptions: {
output: {
manualChunks: {
// Vendor chunks for better caching
"vendor-react": ["react", "react-dom", "react-router-dom"],
"vendor-convex": ["convex", "convex/react"],
"vendor-markdown": [
"react-markdown",
"remark-gfm",
"remark-breaks",
"rehype-raw",
"rehype-sanitize",
],
"vendor-syntax": ["react-syntax-highlighter"],
"vendor-diffs": ["@pierre/diffs"],
},
},
},
},
server: {
proxy: {
// Proxy RSS and sitemap to Convex HTTP endpoints in development
"/rss.xml": {
target: convexSiteUrl,
changeOrigin: true,
},
"/rss-full.xml": {
target: convexSiteUrl,
changeOrigin: true,
},
"/sitemap.xml": {
target: convexSiteUrl,
changeOrigin: true,
},
"/api/posts": {
target: convexSiteUrl,
changeOrigin: true,
},
"/api/post": {
target: convexSiteUrl,
changeOrigin: true,
},
"/meta/post": {
target: convexSiteUrl,
changeOrigin: true,
},
},
},
};
});