Estoy tratando de crear un sistema en mi aplicación SvelteKit donde le muestre información sobre la versión actual de la aplicación (idealmente, un hash y una descripción de confirmación de Git) en una página determinada. Intenté usar la función de definición de Vite para hacer esto en el momento de la compilación, pero parece que no funciona. ¿Cómo agrego algo como esto?
Aquí hay un ejemplo de lo que traté de hacer:
Configuración de Vite en svelte.config.js
vite: () => ({ define: { '__APP_VERSION__': JSON.stringify('testfornow') } })índice.esbelto:
<script lang="ts"> const version: string = __APP_VERSION__; </script> <p>Current App version: {version}</p>Así es como me las arreglé para que funcione:
// svelte.config.js import { readFileSync } from 'fs'; import { fileURLToPath } from 'url'; const file = fileURLToPath(new URL('package.json', import.meta.url)); const json = readFileSync(file, 'utf8'); const pkg = JSON.parse(json); const config = { kit: { // ... vite: { define: { '__APP_VERSION__': JSON.stringify(pkg.version), } }, }, // ... }; <h2>Version: {__APP_VERSION__}</h2>Bastante similar a tu ejemplo, ¡espero que ayude!
Tengo un archivo en blanco version.txt en mi directorio static . Luego uso algo como esto en mi script de empaquetado.
git describe --tags 2> /dev/null || git rev-parse --short HEAD > build/assets/version.txt Esto intenta encontrar una etiqueta (si la hay) o simplemente genera el último commitId. En mi aplicación busco /version.txt y muestro su contenido donde corresponde.