Files
parenthese/frontend/vite.config.js
T
IliesAllaliandClaude Opus 5.5 ee7d2809fc Front : mêmes navigateurs qu'avec Vite 7
Vite 8 relève sa cible par défaut à Safari 16.4 et Chrome 111. La famille ouvre souvent l'arbre sur un vieil iPad ou un ancien téléphone : la cible reste celle de Vite 7 (Chrome et Edge 107, Firefox 104, Safari 16.0), valeurs lues dans le guide de migration de Vite 8.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:13:19 +02:00

34 lines
1.5 KiB
JavaScript

import { defineConfig, loadEnv } from 'vite'
import react from '@vitejs/plugin-react'
// https://vite.dev/config/
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '')
// Dev seulement : VITE_DEV_PROXY_TARGET fait passer l'API et les médias par le serveur Vite, avec
// VITE_API_BASE_URL vide (même origine). Deux usages, voir .env.development.local :
// - https://app.parenthese.io : tester le front local sur un arbre réel (nginx retire /api côté prod)
// - http://127.0.0.1:4000 + VITE_DEV_PROXY_STRIP_API=1 : backend local, Vite retire /api comme nginx
// (sans ça, les liens partagés /api/arbre/:slug et les médias /api/... répondent 404 en local)
const proxyTarget = env.VITE_DEV_PROXY_TARGET
const stripApi = env.VITE_DEV_PROXY_STRIP_API === '1'
const proxy = proxyTarget
? Object.fromEntries(['/api', '/trees', '/auth', '/health'].map((p) => [p, {
target: proxyTarget,
changeOrigin: true,
...(p === '/api' && stripApi ? { rewrite: (requestPath) => requestPath.replace(/^\/api/, '') } : {}),
}]))
: undefined
return {
plugins: [react()],
server: { proxy },
// Mêmes navigateurs qu'avec Vite 7 : Vite 8 relève sa cible par défaut (Safari 16.4, Chrome 111),
// et la famille ouvre souvent l'arbre sur un vieil iPad ou un ancien téléphone
build: { target: ['chrome107', 'edge107', 'firefox104', 'safari16'] },
test: {
environment: 'node',
include: ['src/**/*.test.{js,jsx}'],
},
}
})