الملفات
FlowSync/vite.config.ts
Mino484 1fda64ec43
فشلت بعض الفحوصات
Release Please / release-please (push) Has been cancelled
Docker Build and Push (Development) / build-and-push-dev (push) Has been cancelled
working v1
2025-11-17 17:19:47 +03:00

69 أسطر
2.3 KiB
TypeScript

import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react";
import { visualizer } from "rollup-plugin-visualizer";
import { VitePWA } from "vite-plugin-pwa";
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, "./src/config/");
const proxyURL = env.VITE_PROXY_URL || "http://localhost:3000";
console.log(`\nBackend Development Proxy URL: ${proxyURL}/api\n`);
return {
plugins: [
react(),
visualizer(),
VitePWA({
registerType: "autoUpdate",
workbox: {
globPatterns: ["**/*.{js,css,html,ico,png,svg}"],
navigateFallbackDenylist: [
/^\/file-service\/download\//, // Matches any path starting with /file-service/download/
/^\/file-service\/public\/download\/[^\/]+\/[^\/]+/, // Matches /file-service/public/download/:id/:tempToken
/^\/folder-service\/download-zip/, // Matches /folder-service/download-zip
/^\/file-service\/stream-video\/[^\/]+/, // Matches /file-service/stream-video/:id
/^\/file-service\/download\/[^\/]+/, // Matches /file-service/download/:id
],
runtimeCaching: [
{
// Matches any URL that follows the pattern /file-service/thumbnail/{id}
urlPattern: /\/file-service\/thumbnail\/[a-zA-Z0-9_-]+$/,
handler: "CacheFirst",
options: {
cacheName: "dynamic-thumbnails",
expiration: {
maxEntries: 1000,
maxAgeSeconds: 60 * 60 * 24 * 7, // Cache for 1 week
},
cacheableResponse: {
statuses: [0, 200],
},
},
},
],
},
}),
],
build: {
outDir: "dist-frontend",
},
resolve: {
extensions: [".js", ".jsx", ".ts", ".tsx"], // Include these extensions
},
envDir: "./src/config/",
server: {
proxy: proxyURL
? {
"/api": {
target: proxyURL, // The port where your backend is running
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ""),
},
}
: undefined,
host: proxyURL ? true : undefined,
},
};
});