mirror of
https://github.com/geoffsee/open-gsio.git
synced 2025-09-08 22:56:46 +00:00
76 lines
1.9 KiB
TypeScript
76 lines
1.9 KiB
TypeScript
import react from "@vitejs/plugin-react";
|
|
import vike from "vike/plugin";
|
|
import { defineConfig } from "vite";
|
|
import { cloudflare } from "@cloudflare/vite-plugin";
|
|
import * as child_process from "node:child_process";
|
|
|
|
export default defineConfig(({ command }) => {
|
|
const customPlugins = [
|
|
{
|
|
name: "sitemap-generator",
|
|
buildStart(options) {
|
|
if (command === "build") {
|
|
child_process.execSync("./scripts/gen_sitemap.js");
|
|
console.log("Generated Sitemap -> public/sitemap.xml");
|
|
}
|
|
},
|
|
},
|
|
];
|
|
return {
|
|
mode: "production",
|
|
plugins: [
|
|
...customPlugins,
|
|
vike({
|
|
prerender: true,
|
|
}),
|
|
react(),
|
|
|
|
],
|
|
server: {
|
|
port: 3000,
|
|
proxy: {
|
|
// proxies requests to worker backend
|
|
"/api": {
|
|
target: "http://localhost:3001",
|
|
},
|
|
"/fonts": {
|
|
target: "http://localhost:3001/fonts",
|
|
},
|
|
},
|
|
},
|
|
build: {
|
|
emitAssets: false,
|
|
sourcemap: false,
|
|
target: ["es2020", "edge88", "firefox78", "chrome87", "safari13"],
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id: string) {
|
|
if (id.includes('node_modules')) {
|
|
// creating a chunk to react routes deps. Reducing the vendor chunk size
|
|
if (id.includes('shiki/dist/wasm')) {
|
|
return '@wasm-bundle';
|
|
}
|
|
|
|
if (id.includes('katex') || id.includes('marked') || id.includes('shiki')) {
|
|
return '@resources-bundle';
|
|
}
|
|
|
|
|
|
if (id.includes('chakra') || id.includes('emotion-react')) {
|
|
return '@gui-bundle';
|
|
}
|
|
|
|
|
|
if (id.includes('react-dom') || id.includes('vike') || id.includes('mobx') || id.includes('framer-motion')) {
|
|
return '@logic-bundle';
|
|
}
|
|
return 'vendor';
|
|
}
|
|
}
|
|
}
|
|
},
|
|
cssMinify: true
|
|
},
|
|
};
|
|
});
|