correction vite

This commit is contained in:
Jean-Philippe Staelen 2026-01-20 12:12:07 +01:00
parent 4b7d3c11b0
commit 0401b8a1aa
2 changed files with 56 additions and 74 deletions

View File

@ -1,15 +1,15 @@
{ {
"scripts": { "scripts": {
"dev": "vite --mode development",
"build": "vite build", "build": "vite build",
"watch": "vite build --watch", "watch": "vite build --watch --mode development"
"dev": "vite build --watch --mode development"
}, },
"dependencies": { "dependencies": {
"@fullcalendar/core": "^6.1.18", "@fullcalendar/core": "^6.1.18",
"@fullcalendar/daygrid": "^6.1.18", "@fullcalendar/daygrid": "^6.1.18",
"@fullcalendar/timegrid": "^6.1.18",
"@fullcalendar/list": "^6.1.18",
"@fullcalendar/interaction": "^6.1.18", "@fullcalendar/interaction": "^6.1.18",
"@fullcalendar/list": "^6.1.18",
"@fullcalendar/timegrid": "^6.1.18",
"bootstrap": "^5.3.7", "bootstrap": "^5.3.7",
"select2": "^4.0.13", "select2": "^4.0.13",
"toastr": "^2.1.4" "toastr": "^2.1.4"
@ -18,3 +18,4 @@
"vite": "^7.0.3" "vite": "^7.0.3"
} }
} }

View File

@ -1,89 +1,70 @@
import { defineConfig } from 'vite'; import { defineConfig } from 'vite'
export default defineConfig({ export default defineConfig({
root: '.',
build: { build: {
outDir: 'dist', outDir: 'dist',
target: 'es2015',
minify: true,
rollupOptions: { rollupOptions: {
input: { input: {
crvi_libraries: 'crvi_libraries.js', crvi_libraries: './crvi_libraries.js',
crvi_main: 'crvi_main.js', crvi_main: './crvi_main.js',
// Entrées CSS (OK avec Vite/Rollup)
crvi_main_css: '../css/crvi_main.css', crvi_main_css: '../css/crvi_main.css',
intervenant_profile_css: '../css/intervenant-profile.css', intervenant_profile_css: '../css/intervenant-profile.css',
traduction_langue_admin: 'traduction-langue-admin.js',
traduction_langue_admin_css: '../css/traduction-langue-admin.css', traduction_langue_admin_css: '../css/traduction-langue-admin.css',
traduction_langue_list: 'traduction-langue-list.js', traduction_langue_list_css: '../css/traduction-langue-list.css',
traduction_langue_list_css: '../css/traduction-langue-list.css'
traduction_langue_admin: './traduction-langue-admin.js',
traduction_langue_list: './traduction-langue-list.js'
}, },
// Important: en "es", `globals` ne sert pas.
// Si tu veux éviter de bundler jquery/toastr/select2 car chargés via <script>:
// external: ['jquery', 'toastr', 'select2'],
output: { output: {
format: 'es', // Format ES modules format: 'es',
entryFileNames: '[name].min.js', entryFileNames: '[name].min.js',
assetFileNames: (assetInfo) => {
// Renommer le CSS extrait automatiquement de crvi_libraries.js
if (assetInfo.name && (assetInfo.name.includes('crvi_libraries') && assetInfo.name.endsWith('.css'))) {
return 'crvi_libraries.min.css';
}
// Renommer le CSS des libraries (si entrée séparée)
if (assetInfo.name && assetInfo.name.includes('crvi_libraries_css')) {
return 'crvi_libraries.min.css';
}
// Renommer le fichier CSS principal en crvi_main.min.css
if (assetInfo.name && assetInfo.name.includes('crvi_main_css')) {
return 'crvi_main.min.css';
}
// Renommer le CSS du profil intervenant
if (assetInfo.name && assetInfo.name.includes('intervenant_profile_css')) {
return 'intervenant-profile.min.css';
}
// Renommer le CSS de traduction-langue admin
if (assetInfo.name && assetInfo.name.includes('traduction_langue_admin_css')) {
return 'traduction-langue-admin.min.css';
}
// Renommer le CSS de traduction-langue list
if (assetInfo.name && assetInfo.name.includes('traduction_langue_list_css')) {
return 'traduction-langue-list.min.css';
}
// Pour les autres assets CSS, utiliser le pattern par défaut
if (assetInfo.name && assetInfo.name.endsWith('.css')) {
return '[name].min.css';
}
return '[name].min.[ext]';
},
// Séparer les librairies externes des modules locaux
manualChunks: (id) => {
// Si c'est le fichier crvi_libraries.js, tout va dans crvi_libraries
if (id.includes('crvi_libraries.js')) {
return 'crvi_libraries';
}
// Détecter les node_modules (librairies externes)
if (id.includes('node_modules')) {
// Séparer Bootstrap, Toastr, FullCalendar et leurs dépendances dans le chunk libraries
if (id.includes('bootstrap') ||
id.includes('toastr') ||
id.includes('select2') ||
id.includes('@fullcalendar') ||
id.includes('@popperjs') ||
id.includes('jquery')) {
return 'crvi_libraries';
}
// Autres node_modules - inclure dans libraries aussi
return 'crvi_libraries';
}
// Les modules locaux restent dans crvi_main
return null;
},
chunkFileNames: '[name].min.js', chunkFileNames: '[name].min.js',
globals: {
'jquery': 'jQuery', assetFileNames: (assetInfo) => {
'toastr': 'toastr', const name = assetInfo.name || ''
'select2': 'select2'
// CSS extrait depuis une entry JS (ex: crvi_libraries.js -> crvi_libraries.css)
if (name.includes('crvi_libraries') && name.endsWith('.css')) {
return 'crvi_libraries.min.css'
}
// Entrées CSS séparées
if (name.includes('crvi_main_css')) return 'crvi_main.min.css'
if (name.includes('intervenant_profile_css')) return 'intervenant-profile.min.css'
if (name.includes('traduction_langue_admin_css')) return 'traduction-langue-admin.min.css'
if (name.includes('traduction_langue_list_css')) return 'traduction-langue-list.min.css'
// Autres CSS / assets
if (name.endsWith('.css')) return '[name].min.css'
return '[name].min.[ext]'
},
manualChunks: (id) => {
// Node_modules -> crvi_libraries (bundle commun)
if (id.includes('node_modules')) return 'crvi_libraries'
// Optionnel: forcer aussi certains fichiers locaux dans crvi_libraries
if (id.includes('crvi_libraries.js')) return 'crvi_libraries'
return null
} }
} }
}, }
// Forcer la transpilation pour compatibilité navigateur
target: 'es2015',
minify: true // Utilise esbuild par défaut (plus rapide que terser)
}, },
define: { define: {
global: 'window' global: 'window'
} }
}); })