121 lines
4.1 KiB
JavaScript
121 lines
4.1 KiB
JavaScript
|
|
// vite.config.js
|
||
|
|
|
||
|
|
import { defineConfig } from 'vite';
|
||
|
|
import { resolve } from 'path';
|
||
|
|
import JavaScriptObfuscator from 'rollup-plugin-javascript-obfuscator';
|
||
|
|
import tailwindcss from '@tailwindcss/vite'
|
||
|
|
|
||
|
|
// Si vous utilisez un framework comme Vue ou React, importez son plugin ici
|
||
|
|
// import vue from '@vitejs/plugin-vue';
|
||
|
|
// import react from '@vitejs/plugin-react';
|
||
|
|
|
||
|
|
export default defineConfig({
|
||
|
|
// La racine de votre projet frontend. Tous les chemins seront résolus par rapport à ce dossier.
|
||
|
|
root: './assets',
|
||
|
|
|
||
|
|
// Base publique de l'URL lorsque l'application est déployée.
|
||
|
|
base: '/assets/',
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// --- Options du serveur de développement (vite dev) ---
|
||
|
|
server: {
|
||
|
|
// Écoute sur toutes les interfaces réseau locales
|
||
|
|
host: "0.0.0.0",
|
||
|
|
|
||
|
|
// Autorise l'accès depuis ces hôtes
|
||
|
|
allowedHosts: ["esyweb.local"],
|
||
|
|
|
||
|
|
// Port du serveur de développement Vite
|
||
|
|
port: 5173,
|
||
|
|
|
||
|
|
// Ne pas ouvrir automatiquement le navigateur
|
||
|
|
open: false,
|
||
|
|
|
||
|
|
// Configuration CORS pour autoriser les requêtes depuis votre backend Symfony
|
||
|
|
cors: {
|
||
|
|
origin: ['http://esyweb.local']
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
// --- Options de build (vite build) ---
|
||
|
|
build: {
|
||
|
|
// Chemin de sortie des fichiers compilés, relatif à la racine du projet
|
||
|
|
outDir: resolve(__dirname, 'public/build'),
|
||
|
|
|
||
|
|
// Les assets compilés iront dans public/build/assets
|
||
|
|
assetsDir: '',
|
||
|
|
|
||
|
|
// Vide le répertoire de sortie avant chaque build
|
||
|
|
emptyOutDir: true,
|
||
|
|
|
||
|
|
// Génère un fichier manifest.json pour l'intégration avec Symfony
|
||
|
|
manifest: true,
|
||
|
|
|
||
|
|
// Désactive les sourcemaps pour la production
|
||
|
|
sourcemap: false,
|
||
|
|
|
||
|
|
// Minification du code avec esbuild (rapide et efficace)
|
||
|
|
minify: 'esbuild',
|
||
|
|
|
||
|
|
// Configuration avancée de Rollup (utilisé par Vite pour le build)
|
||
|
|
rollupOptions: {
|
||
|
|
// Points d'entrée de votre application
|
||
|
|
input: {
|
||
|
|
administration: resolve(__dirname, 'assets/administration.js'),
|
||
|
|
// Exemple : 'styles': resolve(__dirname, 'assets/styles/main.scss'),
|
||
|
|
}
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
// --- Résolution des modules ---
|
||
|
|
resolve: {
|
||
|
|
// Alias pour simplifier les importations
|
||
|
|
alias: {
|
||
|
|
'@': resolve(__dirname, 'assets'),
|
||
|
|
},
|
||
|
|
// Extensions de fichiers à résoudre automatiquement
|
||
|
|
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.scss', '.css'],
|
||
|
|
},
|
||
|
|
|
||
|
|
// --- Plugins Vite ---
|
||
|
|
plugins: [
|
||
|
|
// Ajoutez ici les plugins de framework (ex: vue(), react())
|
||
|
|
tailwindcss(),
|
||
|
|
// --- PLUGIN D'OBSCURCISSEMENT JAVASCRIPT ---
|
||
|
|
// Doit être l'un des derniers plugins pour s'appliquer au code final.
|
||
|
|
// ATTENTION : Ces options sont très agressives et peuvent casser votre code.
|
||
|
|
JavaScriptObfuscator({
|
||
|
|
// Options d'obscurcissement
|
||
|
|
compact: true,
|
||
|
|
controlFlowFlattening: true,
|
||
|
|
controlFlowFlatteningThreshold: 1,
|
||
|
|
deadCodeInjection: true,
|
||
|
|
deadCodeInjectionThreshold: 1,
|
||
|
|
debugProtection: true,
|
||
|
|
debugProtectionInterval: 4000,
|
||
|
|
disableConsoleOutput: true,
|
||
|
|
identifierNamesGenerator: 'hexadecimal',
|
||
|
|
log: false,
|
||
|
|
numbersToExpressions: true,
|
||
|
|
renameGlobals: true, // Peut casser le code si des bibliothèques externes sont utilisées
|
||
|
|
selfDefending: true,
|
||
|
|
shuffleStringArray: true,
|
||
|
|
simplify: true,
|
||
|
|
splitStrings: true,
|
||
|
|
splitStringsChunkLength: 5,
|
||
|
|
stringArray: true,
|
||
|
|
stringArrayEncoding: ['base64'],
|
||
|
|
stringArrayIndexShift: true,
|
||
|
|
stringArrayRotate: true,
|
||
|
|
stringArrayShuffle: true,
|
||
|
|
stringArrayThreshold: 1,
|
||
|
|
transformObjectKeys: true, // Peut casser l'accès aux propriétés des objets
|
||
|
|
unicodeEscapeSequence: true,
|
||
|
|
}),
|
||
|
|
],
|
||
|
|
|
||
|
|
// Définition de variables d'environnement globales (si nécessaire)
|
||
|
|
define: {},
|
||
|
|
});
|