Qual é o melhor compressor JavaScript disponível? Estou procurando uma ferramenta que:
- é fácil de usar
- tem uma alta taxa de compressão
- Produza resultados finais confiáveis (não estraga o código)
javascript
compression
Ron Harlev
fonte
fonte
Respostas:
Lancei recentemente o UglifyJS , um compressor JavaScript escrito em JavaScript (executado na plataforma NodeJS Node.js , mas pode ser facilmente modificado para ser executado em qualquer mecanismo JavaScript, pois não precisa de
Node.js
componentes internos). É muito mais rápido que o YUI Compressor e o Google Closure , compacta melhor que o YUI em todos os scripts em que o testei e é mais seguro que o Closure (sabe lidar com "eval" ou "with").Além da remoção de espaço em branco, o UglifyJS também faz o seguinte:
foo["bar"]
-foo.bar
se sempre que possívelPS: Ah, também pode "embelezar". ;-)
fonte
Revisitando esta questão alguns anos depois, o UglifyJS , parece ser a melhor opção a partir de agora.
Conforme indicado abaixo, ele é executado na plataforma NodeJS, mas pode ser facilmente modificado para ser executado em qualquer mecanismo JavaScript.
--- Antiga resposta abaixo ---
O Google lançou o Closure Compiler, que parece estar gerando os menores arquivos até aqui e aqui
Antes disso, as várias opções eram as seguintes
Basicamente, o Packer faz um trabalho melhor na compactação inicial, mas se você deseja compactar os arquivos antes de enviá-los pelo fio (o que você deve fazer), o YUI Compressor obtém o menor tamanho final.
Os testes foram feitos no código jQuery btw.
@ daniel james menciona no comentário compressorrater que mostra o Packer liderando o gráfico na melhor compactação, então acho que sim
fonte
\uxxxx
literais por padrão .. usar por exemplo--charset UTF-8
(se você tem certeza que você deixe o know navegador sobre isso de alguma forma)O Compressor YUI é o caminho a percorrer. Tem uma ótima taxa de compactação, é bem testado e está em uso entre muitos sites importantes e, bem, pessoalmente recomendado por mim.
Usei-o para os meus projetos sem um único erro de JavaScript ou soluço. E tem boa documentação.
Eu nunca usei seus recursos de compactação CSS, mas eles existem também.A compactação CSS também funciona.Nota: Embora o / packer / de Dean Edwards atinja uma taxa de compactação melhor que o YUI Compressor, encontrei alguns erros de JavaScript ao usá-lo.
fonte
npm install packer
. (= DEu uso o ShrinkSafe no projeto Dojo - é excepcional porque ele realmente usa um interpretador JavaScript ( Rhino ) para lidar com a localização de símbolos no código e com a compreensão de seu escopo etc., o que ajuda a garantir que o código funcione quando for lançado. outra extremidade, ao contrário de muitas ferramentas de compactação que usam regex para fazer o mesmo (o que não é tão confiável).
Na verdade, eu tenho uma tarefa MSBuild em um Projeto de Implantação da Web na minha solução atual do Visual Studio que executa um script que, por sua vez, executa todos os arquivos JS da solução através do ShrinkSafe antes da implantação e funciona muito bem.
EDIT: By the way, "melhor" é aberto a debate, uma vez que os critérios para a "melhor" irá variar dependendo das necessidades do projeto. Pessoalmente, acho que o ShrinkSafe é um bom equilíbrio; para algumas pessoas que pensam o menor tamanho == melhor, será insuficiente.
EDIT: Vale a pena notar que o compressor YUI também usa Rhino.
fonte
Experimente o JSMin , obtenha C #, Java, C e outras portas e também esteja prontamente disponível.
fonte
Se você usa o Packer, basta ir até a opção 'encolher variáveis' e pressionar o código resultante. A opção base62 é apenas para se o seu servidor não puder enviar arquivos compactados em gzip. O empacotador com 'shrink vars' alcança melhor compactação da YUI, mas pode apresentar erros se você pular um ponto e vírgula em algum lugar.
base62 é basicamente o gzip de um homem pobre, e é por isso que gzipping o código base62-ed fornece arquivos maiores que o gzipping o código shrink-var-ed.
fonte
JSMin é outro.
fonte
fonte
Aqui está o código fonte de um HttpHandler que faz isso, talvez isso ajude você
fonte
Aqui está um script de compressor YUI ( Byuic ) que localiza todos os js e css em um caminho e os compacta / (opcionalmente) ofusca-os. É bom integrar em um processo de compilação.
fonte
O bananascript.com costumava me dar melhores resultados.
fonte
KJScompress
http://opensource.seznam.cz/KJScompress/index.html
fonte
O Js Crush é um bom compressor para uso após a minificação.
fonte