frontend/vite.config.js
Rama main · réplica de lectura del repositorio original.
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
}
}
}
})