import { defineConfig } from "vite"; import tailwindcss from "@tailwindcss/vite"; import { sigproRouter } from 'sigpro'; import { resolve } from "path"; import path from "node:path"; const dev = process.env.NODE_ENV === "development"; const createAgGridLib = { lib: { entry: resolve(__dirname, "src/components/aggrid-lib.js"), name: "AgGridBundle", fileName: "aggrid", formats: ["es"], }, outDir: "dist/lib", }; export default defineConfig({ plugins: [ sigproRouter(),tailwindcss()], base: dev ? "/absproxy/5173/" : "/", resolve: { alias: { "@components": path.resolve(__dirname, "src/components/"), }, }, server: { allowedHosts: true, port: 5173, }, build: { chunkSizeWarningLimit: 1500, rollupOptions: { output: { // 2. Controla dónde van los archivos JS chunkFileNames: "assets/js/[name]-[hash].js", entryFileNames: "assets/js/[name]-[hash].js", // 3. Controla dónde van los archivos CSS y otros assets assetFileNames: (assetInfo) => { const name = assetInfo.name ?? ""; if (name.endsWith(".css")) { return "assets/css/[name]-[hash][extname]"; } return "assets/[name]-[hash][extname]"; }, // 4. Estrategia de separación manual (Manual Chunks) // Esto separa las librerías pesadas de tu código de SigPro manualChunks(id) { if (id.includes("node_modules")) { return "vendor"; // Todo lo externo va a vendor.js } // Si quieres separar tu motor SigPro del resto de la App: if (id.includes("sigpro.js")) { return "sigpro-core"; } }, }, }, // ...createAgGridLib }, optimizeDeps: { include: ["ag-grid-community", "ag-grid-enterprise"], // Esto evita que Vite intente buscar dependencias nuevas en cada cambio force: false, }, });