Minifica JavaScript Online
Ottimizza la dimensione del tuo bundle JavaScript. Minimizza o abbellisci in un istante.
Perche usare questo strumento
JavaScript piu leggero, app piu veloci
Riduzione del 40-60%
Rimuove spazi bianchi, commenti e accorcia le variabili senza alterare la funzionalita.
Privato
Il JS viene elaborato nel tuo browser. Non viene mai caricato su alcun server.
Bidirezionale
Minimizza per la produzione o abbellisci il JS minimizzato per leggerlo e fare debug.
Istantaneo
Risultati in millisecondi. Nessuna elaborazione server.
Come funziona
Tre passaggi, senza complicazioni
Incolla o carica il tuo JavaScript
Incolla il codice JS direttamente o trascina un file .js. Nessun limite di dimensione.
Scegli: minimizza o abbellisci
Minimizza per la produzione (riduce le variabili, rimuove gli spazi) o abbellisci il JS minimizzato per leggerlo.
Copia o scarica il risultato
Il JavaScript ottimizzato appare in un istante. Copia negli appunti o scarica come file.
FAQ
Hai delle domande?
La minimizzazione JavaScript rimuove spazi bianchi, commenti e interruzioni di riga, accorcia i nomi di variabili e funzioni locali (renaming/mangling) e in alcuni casi elimina il codice morto. Il risultato e funzionalmente identico ma significativamente piu piccolo, riducendo i tempi di download e il tempo di parsing del motore JS.
UglifyJS (2010) e stato il primo minifier JavaScript ampiamente adottato, introducendo la compressione e il mangling (rinominazione delle variabili). Terser e il successore moderno di UglifyJS, compatibile con ES2015+ e i moduli ES. 'Minify' e il termine generico per la riduzione delle dimensioni. Terser e oggi lo standard de facto, usato internamente da webpack, Vite, Rollup ed esbuild.
Tipicamente il 40-60% della dimensione originale per JavaScript ben commentato e formattato. Un file da 200 KB puo essere ridotto a 80-120 KB con la sola minimizzazione. Combinata con la compressione gzip/Brotli, il risparmio totale puo superare l'80%. La rinominazione delle variabili aggiunge un ulteriore 10-20% di riduzione rispetto alla semplice rimozione degli spazi bianchi.
Il JavaScript minimizzato puo essere abbellito per recuperare una struttura leggibile, ma i nomi di variabili e funzioni rinominati non possono essere recuperati: 'calcolaRataMensile' potrebbe essere diventato 'a' o 'b'. Senza le source map originali, il codice abbellito e funzionale ma difficile da capire. Le source map mappano il codice minimizzato all'originale e sono essenziali per il debug in produzione.
Le source map sono file .js.map che creano una corrispondenza tra il codice minimizzato/transpilato e il codice sorgente originale. Quando si verifica un errore in produzione, il browser usa la source map per mostrare lo stack trace con i nomi originali e i numeri di riga invece della versione minimizzata. Vengono generate automaticamente da webpack (devtool: 'source-map'), Vite (build.sourcemap: true) o Terser (--source-map).
Storia della minimizzazione JavaScript e ottimizzazione dei bundle
La minimizzazione JavaScript ha avuto origine con JSMin, creato da Douglas Crockford nel 2001. Crockford ha osservato che il JavaScript inviato al client conteneva enormi quantita di spazi bianchi e commenti che consumavano banda inutilmente. JSMin e stato il primo compressore sistematico: rimuoveva commenti e spazi bianchi preservando la semantica del linguaggio. Poco dopo, YUI Compressor (Yahoo, 2007) ha introdotto la rinominazione basica delle variabili, gettando le basi per la minimizzazione moderna.
Il tree-shaking e una tecnica correlata ma distinta: mentre la minimizzazione riduce il codice esistente, il tree-shaking elimina il codice che non viene mai eseguito (codice morto) analizzando il grafo delle importazioni dei moduli ES. Rollup ha reso popolare il tree-shaking nel 2015; webpack lo ha adottato nella versione 2. Il code splitting completa queste tecniche dividendo il bundle in chunk caricati su richiesta (dynamic import()), riducendo il JavaScript iniziale che il browser deve analizzare ed eseguire.
Lo strumento Lighthouse di Google include l'analisi della copertura JavaScript (scheda Coverage in Chrome DevTools) che identifica quale percentuale del JS scaricato viene effettivamente eseguita al caricamento iniziale. Gli studi di HTTP Archive mostrano che la pagina web mediana carica oltre 400 KB di JavaScript compresso (oltre 1 MB non compresso), rendendolo la risorsa che piu danneggia il Time to Interactive (TTI). L'adozione degli ESM nativi nei browser moderni e il pattern dei moduli con importmaps rappresenta la prossima evoluzione nella distribuzione efficiente di JavaScript.