Crvi/assets/js/vite.config.js
2026-01-20 12:12:07 +01:00

71 lines
2.2 KiB
JavaScript

import { defineConfig } from 'vite'
export default defineConfig({
root: '.',
build: {
outDir: 'dist',
target: 'es2015',
minify: true,
rollupOptions: {
input: {
crvi_libraries: './crvi_libraries.js',
crvi_main: './crvi_main.js',
// Entrées CSS (OK avec Vite/Rollup)
crvi_main_css: '../css/crvi_main.css',
intervenant_profile_css: '../css/intervenant-profile.css',
traduction_langue_admin_css: '../css/traduction-langue-admin.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: {
format: 'es',
entryFileNames: '[name].min.js',
chunkFileNames: '[name].min.js',
assetFileNames: (assetInfo) => {
const name = assetInfo.name || ''
// 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
}
}
}
},
define: {
global: 'window'
}
})