Confronto tra Online Javascript Minify, UglifyJS, Terser e Google Closure Compiler.| Online Javascript Minify | UglifyJS | Terser | Compilatore di chiusure Google |
|---|
| Motore di minimizzazione: La pagina di DigitalOcean si descrive come un'interfaccia web interattiva per Terser, quindi l'output è quello prodotto da Terser e non da un algoritmo separato. | Motore di minimizzazione: UglifyJS è un parser, manipolatore e compressore JavaScript. Terser è un fork della sua variante ES6+ (uglify-es) e i due mantengono sostanzialmente la stessa API e riga di comando. | Motore di minimizzazione: Terser è il motore che la pagina DigitalOcean utilizza come wrapper. Se usato direttamente, espone le opzioni compress, mangle, mangle-props, format e parse. | Motore di minimizzazione: Closure Compiler è un compilatore separato basato su Java. Oltre ad accorciare il codice, controlla la sintassi, i riferimenti alle variabili e i tipi, e avverte dei comuni errori di JavaScript. |
| Supporto linguistico: Terser, il motore alla base della pagina, viene descritto come un toolkit per il codice ES6+. | Supporto linguistico: Il progetto dichiara di supportare JavaScript e la maggior parte delle funzionalità del linguaggio ECMAScript. Per funzionalità più particolari, consiglia di effettuare prima la transpilazione con uno strumento come Babel. | Supporto linguistico: Terser è descritto come un toolkit per ES6+. La sua opzione ecma può essere impostata su 2015 o superiore per consentire trasformazioni di output ES6+. | Supporto linguistico: Le informazioni sul tipo possono essere dichiarate tramite annotazioni nei commenti, che il compilatore utilizza nei suoi controlli. |
| Livelli di ottimizzazione: Il testo della pagina non elenca le singole impostazioni. | Livelli di ottimizzazione: Il comportamento viene regolato tramite le opzioni compress e mangle, da riga di comando o tramite l'API minify(). | Livelli di ottimizzazione: Il comportamento viene regolato tramite le opzioni compress, mangle, mangle-props e format. | Livelli di ottimizzazione: Il flag --compilation_level accetta BUNDLE, WHITESPACE_ONLY, SIMPLE (predefinito) e ADVANCED. Il progetto afferma che il compilatore trae il massimo vantaggio dalla ricezione di tutto il codice sorgente contemporaneamente, il che abilita ADVANCED, e che le modalità diverse da ADVANCED sono deprecate. |
| Installazione e automazione: Nessuna installazione: il codice viene inserito nel browser. La pagina non descrive in alcun modo l'utilizzo in una pipeline di compilazione. | Installazione e automazione: Installato con npm, globalmente per la riga di comando o localmente per l'uso programmatico, con una versione recente di Node.js. | Installazione e automazione: Installabile tramite npm, a livello globale o locale. L'API offre una funzione asincrona minify() e una funzione minify_sync(). | Installazione e automazione: Disponibile tramite npm (pacchetti gestiti da terze parti, non da Google), come release Maven precompilata oppure compilabile dal codice sorgente, che richiede Java 21 o versioni successive, Node.js, Git e Bazelisk. |
| Mappe di origine: Le mappe sorgente vengono abilitate con --source-map sulla riga di comando o con l'opzione sourceMap in minify(), inclusa la composizione con mappe sorgente di input. | Mappe di origine: Le mappe sorgente sono abilitate con --source-map o sourceMap. Le opzioni includono filename, url, root, content e includeSources, e l'API restituisce la mappa in result.map. | |