mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-06 06:32:05 +00:00
78 lines
1.9 KiB
TypeScript
78 lines
1.9 KiB
TypeScript
|
|
import generouted from "@generouted/react-router/plugin";
|
||
|
|
import react from "@vitejs/plugin-react";
|
||
|
|
import tailwindcss from "@tailwindcss/vite";
|
||
|
|
import path from "node:path";
|
||
|
|
import { defineConfig, loadEnv, transformWithEsbuild } from "vite";
|
||
|
|
import { defaultRouterFile, fixGeneroutedRouterPaths } from "./scripts/fix-router-paths.ts";
|
||
|
|
|
||
|
|
export default defineConfig(({ mode }) => {
|
||
|
|
const env = loadEnv(mode, process.cwd(), "");
|
||
|
|
|
||
|
|
return {
|
||
|
|
plugins: [
|
||
|
|
{
|
||
|
|
name: "load-js-files-as-jsx",
|
||
|
|
async transform(code, id) {
|
||
|
|
if (!/\/src\/.*\.js$/.test(id)) {
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
return transformWithEsbuild(code, id, {
|
||
|
|
loader: "jsx",
|
||
|
|
jsx: "automatic",
|
||
|
|
});
|
||
|
|
},
|
||
|
|
},
|
||
|
|
react(),
|
||
|
|
tailwindcss(),
|
||
|
|
generouted({
|
||
|
|
source: {
|
||
|
|
routes: "./src/app/**/[\\w[-]*.{jsx,tsx}",
|
||
|
|
modals: "./src/app/**/[+]*.{jsx,tsx}",
|
||
|
|
},
|
||
|
|
output: "./src/router.ts",
|
||
|
|
}),
|
||
|
|
{
|
||
|
|
name: "generouted-app-paths",
|
||
|
|
enforce: "post",
|
||
|
|
buildEnd() {
|
||
|
|
fixGeneroutedRouterPaths(defaultRouterFile);
|
||
|
|
},
|
||
|
|
configureServer(server) {
|
||
|
|
const scheduleFix = () => {
|
||
|
|
setTimeout(() => fixGeneroutedRouterPaths(defaultRouterFile), 50);
|
||
|
|
};
|
||
|
|
server.watcher.on("add", scheduleFix);
|
||
|
|
server.watcher.on("change", scheduleFix);
|
||
|
|
server.watcher.on("unlink", scheduleFix);
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
optimizeDeps: {
|
||
|
|
esbuildOptions: {
|
||
|
|
loader: {
|
||
|
|
".js": "jsx",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
resolve: {
|
||
|
|
alias: {
|
||
|
|
"@": path.resolve(__dirname, "src"),
|
||
|
|
},
|
||
|
|
},
|
||
|
|
server: {
|
||
|
|
port: 3000,
|
||
|
|
proxy: {
|
||
|
|
"/api": {
|
||
|
|
target: env.VITE_API_TARGET ?? "http://localhost:5141",
|
||
|
|
changeOrigin: true,
|
||
|
|
secure: false,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
build: {
|
||
|
|
outDir: "dist",
|
||
|
|
},
|
||
|
|
};
|
||
|
|
});
|