68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
import { defineConfig } from "vite";
|
|
import tailwindcss from "@tailwindcss/vite";
|
|
// import { sigproRouter } from './router.js';
|
|
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: [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,
|
|
},
|
|
});
|