mirror of https://github.com/jetkvm/kvm.git
				
				
				
			
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import { defineConfig } from "vite";
 | |
| import react from "@vitejs/plugin-react-swc";
 | |
| import tailwindcss from "@tailwindcss/vite";
 | |
| import tsconfigPaths from "vite-tsconfig-paths";
 | |
| import basicSsl from "@vitejs/plugin-basic-ssl";
 | |
| import { paraglideVitePlugin } from "@inlang/paraglide-js";
 | |
| 
 | |
| declare const process: {
 | |
|   env: {
 | |
|     JETKVM_PROXY_URL: string;
 | |
|     USE_SSL: string;
 | |
|   };
 | |
| };
 | |
| 
 | |
| export default defineConfig(({ mode, command }) => {
 | |
|   const isCloud = mode.indexOf("cloud") !== -1;
 | |
|   const onDevice = mode === "device";
 | |
|   const { JETKVM_PROXY_URL, USE_SSL } = process.env;
 | |
|   const useSSL = USE_SSL === "true";
 | |
| 
 | |
|   const plugins = [
 | |
|     tailwindcss(),
 | |
|     tsconfigPaths(),
 | |
|     react()
 | |
|   ];
 | |
| 
 | |
|   if (useSSL) {
 | |
|     plugins.push(basicSsl());
 | |
|   }
 | |
| 
 | |
|   plugins.push(paraglideVitePlugin({
 | |
|     project: "./localization/jetKVM.UI.inlang",
 | |
|     outdir: "./localization/paraglide",
 | |
|     outputStructure: 'message-modules',
 | |
|     cookieName: 'JETKVM_LOCALE',
 | |
|     strategy: ['cookie', 'preferredLanguage', 'baseLocale'],
 | |
|   }))
 | |
| 
 | |
|   return {
 | |
|     plugins,
 | |
|     esbuild: {
 | |
|       pure: ["console.debug"],
 | |
|     },
 | |
|     assetsInclude: ["**/*.woff2"],
 | |
|     build: {
 | |
|       outDir: isCloud ? "dist" : "../static",
 | |
|       rollupOptions: {
 | |
|         output: {
 | |
|           manualChunks: (id) => {
 | |
|             if (id.includes("node_modules")) {
 | |
|               return "vendor";
 | |
|             }
 | |
|             return null;
 | |
|           },
 | |
|           assetFileNames: "assets/immutable/[name]-[hash][extname]",
 | |
|           chunkFileNames: "assets/immutable/[name]-[hash].js",
 | |
|           entryFileNames: "assets/immutable/[name]-[hash].js",
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|     server: {
 | |
|       host: "0.0.0.0",
 | |
|       https: useSSL,
 | |
|       proxy: JETKVM_PROXY_URL
 | |
|         ? {
 | |
|           "/me": JETKVM_PROXY_URL,
 | |
|           "/device": JETKVM_PROXY_URL,
 | |
|           "/webrtc": JETKVM_PROXY_URL,
 | |
|           "/auth": JETKVM_PROXY_URL,
 | |
|           "/storage": JETKVM_PROXY_URL,
 | |
|           "/cloud": JETKVM_PROXY_URL,
 | |
|           "/developer": JETKVM_PROXY_URL,
 | |
|         }
 | |
|         : undefined,
 | |
|     },
 | |
|     base: onDevice && command === "build" ? "/static" : "/",
 | |
|   };
 | |
| });
 |