codigo0/vite.config.ts
planetazuzu b9413d4d0d feat: Corregir rutas PWA para GitHub Pages y añadir listado de medios faltantes
- Añadido plugin de Vite para generar manifest.json dinámicamente con base path correcto
- Actualizado service worker para detectar base path dinámicamente
- Actualizado registro de service worker en main.tsx para usar base path
- Corregido manifest.json para funcionar en GitHub Pages (/guia-tes-digital/)
- Añadido listado completo de medios faltantes con descripciones
- Actualizado documentación de GitHub Pages
- Corregido símbolo > en ViaAerea.tsx
2025-12-17 16:19:37 +01:00

71 lines
2.1 KiB
TypeScript

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";
import path from "path";
import { manifestPlugin } from "./vite-plugin-manifest";
// Detectar si estamos en GitHub Pages
// GitHub Pages usa el formato: https://username.github.io/repository-name/
const isGitHubPages = process.env.GITHUB_PAGES === 'true';
const repositoryName = process.env.GITHUB_REPOSITORY_NAME || 'guia-tes-digital';
const base = isGitHubPages ? `/${repositoryName}/` : '/';
// https://vitejs.dev/config/
export default defineConfig({
// Base path para GitHub Pages (necesario para rutas SPA)
base: base,
server: {
host: "::",
port: 8096,
fs: {
// Permitir acceso a archivos fuera del proyecto si es necesario
strict: true,
},
},
plugins: [
react(),
manifestPlugin(),
],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
// Configuración para procesar archivos .md
assetsInclude: ["**/*.md"],
// Configuración de build para incluir archivos .md
build: {
rollupOptions: {
// Asegurar que los archivos .md se copien al build
output: {
assetFileNames: (assetInfo) => {
// Mantener estructura de carpetas para archivos .md en public/
if (assetInfo.name?.endsWith('.md')) {
// Si está en public/manual/, mantener esa estructura
const name = assetInfo.name || '';
if (name.includes('manual')) {
return 'manual/[name][extname]';
}
return 'assets/[name]-[hash][extname]';
}
return 'assets/[name]-[hash][extname]';
},
},
},
// Incluir archivos .md en el build
assetsInclude: ['**/*.md'],
// Copiar 404.html y sw.js de public/ a dist/ para GitHub Pages
copyPublicDir: true,
},
// Configuración para PWA
// El service worker se copia automáticamente desde public/ con copyPublicDir
// Configuración para importar archivos .md como texto usando ?raw
// Ejemplo de uso:
// import content from './file.md?raw'
// Esto importará el contenido del archivo como string
optimizeDeps: {
exclude: [],
},
});