Ctrl K
ComunidadGuías…

frontend/vite.config.js

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// VITE_BASE_PATH permet publicar el frontend sota una subruta (p.ex. /demo/).
const base = process.env.VITE_BASE_PATH || '/'
if (!base.startsWith('/') || !base.endsWith('/')) {
  throw new Error(`VITE_BASE_PATH ha de començar i acabar amb '/' (és '${base}')`)
}

// Identificador d'aquesta compilació: va dins del programa i a version.json.
// Les pàgines obertes el comparen per saber si hi ha una versió nova (versioApp.js).
const versio = process.env.VITE_VERSIO || Date.now().toString(36)

const fitxerVersio = {
  name: 'fitxer-versio',
  generateBundle() {
    this.emitFile({ type: 'asset', fileName: 'version.json', source: JSON.stringify({ versio }) })
  },
  configureServer(server) {
    server.middlewares.use(`${base}version.json`, (_req, res) => {
      res.setHeader('Content-Type', 'application/json')
      res.end(JSON.stringify({ versio }))
    })
  }
}

export default defineConfig({
  base,
  plugins: [vue(), fitxerVersio],
  define: { __VERSIO_APP__: JSON.stringify(versio) },
  server: {
    port: 5173,
    proxy: {
      '/api': {
        target: 'http://localhost:8000',
        changeOrigin: true
      }
    }
  }
})