Comparação entre minificadores de JavaScript online, UglifyJS, Terser e Google Closure Compiler.| Minificar Javascript online | UglifyJS | Terser | Compilador Closure do Google |
|---|
| Mecanismo de minificação: A página da DigitalOcean se descreve como uma interface web interativa para o Terser, portanto, o resultado é o que o Terser produz e não um algoritmo separado. | Mecanismo de minificação: UglifyJS é um analisador sintático, modificador e compressor de JavaScript. O Terser foi derivado de sua variante ES6+ (uglify-es), e ambos mantêm praticamente a mesma API e linha de comando. | Mecanismo de minificação: Terser é o mecanismo que a página da DigitalOcean utiliza. Usado diretamente, ele expõe as opções de compressão, manipulação, manipulação de propriedades, formatação e análise sintática. | Mecanismo de minificação: O Closure Compiler é um compilador independente baseado em Java. Além de encurtar o código, ele verifica a sintaxe, as referências e os tipos de variáveis e alerta sobre erros comuns em JavaScript. |
| Suporte a idiomas: O Terser, o mecanismo por trás da página, é descrito como um conjunto de ferramentas para código ES6+. | Suporte a idiomas: O projeto afirma que oferece suporte a JavaScript e à maioria dos recursos da linguagem ECMAScript. Para recursos mais específicos, recomenda-se a transpilação prévia com uma ferramenta como o Babel. | Suporte a idiomas: O Terser é descrito como um conjunto de ferramentas para ES6+. Sua opção ecma pode ser configurada para 2015 ou superior para permitir transformações de saída em ES6+. | Suporte a idiomas: As informações de tipo podem ser declaradas com anotações em comentários, que o compilador utiliza em suas verificações. |
| Níveis de otimização: O texto da página não lista as configurações individuais. | Níveis de otimização: O comportamento é ajustado através das opções compress e mangle, na linha de comando ou através da API minify(). | Níveis de otimização: O comportamento é ajustado através das opções de compressão, manipulação, manipulação de propriedades e formato. | Níveis de otimização: A opção --compilation_level aceita os níveis BUNDLE, WHITESPACE_ONLY, SIMPLE (padrão) e ADVANCED. O projeto afirma que o compilador obtém o máximo benefício ao receber todo o código-fonte de uma só vez, o que habilita o nível ADVANCED, e que os modos diferentes de ADVANCED estão obsoletos. |
| Instalação e automação: Sem instalação: o código é inserido no navegador. Nada na página descreve o uso em um pipeline de compilação. | Instalação e automação: Instalado com npm, globalmente para uso na linha de comando ou localmente para uso programático, com uma versão recente do Node.js. | Instalação e automação: Instalado com npm, globalmente ou localmente. A API oferece uma função minify() assíncrona e uma função minify_sync(). | Instalação e automação: Disponível via npm (pacotes mantidos por terceiros, não pelo Google), como uma versão pré-compilada do Maven ou compilado a partir do código-fonte, que requer Java 21 ou posterior, Node.js, Git e Bazelisk. |
| Mapas de origem: Os mapas de origem são ativados com --source-map na linha de comando ou com a opção sourceMap em minify(), incluindo a composição com mapas de origem de entrada. | Mapas de origem: Os mapas de origem são habilitados com --source-map ou sourceMap. As opções incluem filename, url, root, content e includeSources, e a API retorna o mapa em result.map. | |