As boas práticas de JavaScript e ordenação correta do código permite aos desenvolvedores trabalharem de forma eficiente, ordenada e facilita a leitura do código ao se trabalhar em grupo. No entanto esse código é feito para entendimento dos humanos trabalhando com ele e para as maquinas, muito do que se coloca é desnecessário. Para isso efetuamos a minificação.
As técnicas de minificação são utilizadas por muitos desenvolvedores de website devido ao fato de gerarem versões dos arquivos que são menores e por isso, carregam mais rápido e permitem que o site execute sem afetar a experiencia de uso dos usuários com conexões mais lentas.
Para a sorte de muitos, existem diversas ferramentas disponíveis online que permitem que a minificação seja feita sem muito trabalho ou erro. Segue abaixo algumas delas:
JSMin
https://www.crockford.com/javascript/jsmin.html
O JSMin promete conseguir reduzir arquivos JavaScript em até 50% através da remoção de comentários, linhas de espaço e quebras de linhas desnecessárias. Ao mesmo tempo, o programa sabe levar em consideração que certas peculiaridades da linguagem para evitar erros ao minificar Strings e onde o código pode considerar um fechamento de bloco implícito.
Para executa-lo, basta fazer um download do executável em formato ZIP ou do código fonte em C fornecido no próprio site.
YUI Compressor
http://yui.github.io/yuicompressor/
O YUI Compressor é mantido pelo Yahoo e serve para minificar tanto arquivos JavaScript quanto CSS. Para comprimir os arquivos JS, ele depende do Rhino que é uma implementação Open Source do JavaScript escrita totalmente em Java.
Ele começa analizando o arquivo JavaScript de para entender como ele está estruturado e após, imprime o fluxo dos tokens, omitindo o máximo de caracteres de espaço em branco e substituindo todos os símbolos locais por um símbolo de letra onde quer que tal substituição seja apropriada
AjaxminUi
O Microsoft Ajax Minifier permite que você melhore o desempenho de seus aplicativos da Web reduzindo o tamanho dos arquivos JavaScript e CSS. Além de minificá-los, é possivel mapas de origem para arquivos JavaScript.
Com a opção -analyze na linha de comando para fornecer verificação de sintaxe no estilo “Lint” e análise de variáveis de código. Já com a opção -pretty na linha de comando resultará em um formato multilinha de fácil leitura.
Google Closure Compiler
https://developers.google.com/closure/compiler/
O Closure Compiler é uma ferramenta JavaScript para tornar o download e execução dos arquivos JS mais rápidos. Ao invés de compilar o código fonte em código de máquina, ele compila o JavaScript em uma versão “melhor”, mas ainda em JavaScript. Além de remover comentários e minificar os arquivos fornecidos, ele também analisa e otimiza o código, podendo remover ou reescrever trechos do script.
Gulp
O Gulp é uma ferramenta completa que permite aos desenvolvedores reduzir o número de tarefas repetitivas que estão envolvidas com o a criação e deploy de aplicações web.
Com ele é possível minificar, organizar e controlar o tanto os arquivos JavaScript quanto os CSS. Comparado com as ferramentas mostradas aqui anteriormente, o Gulp é certamente mais complexo, mas se bem utilizado é o que permite o melhor controle e manutenção de seu projeto.