mirror of
https://github.com/IliesAllali/parenthese.git
synced 2026-11-09 07:50:58 +00:00
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>
34 lines
1.5 KiB
JavaScript
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}'],
|
|
},
|
|
}
|
|
})
|