Pergunta

Não quaisquer soluções existem atualmente que pode apoucar um diretório projeto inteiro? Mais importante, existem quaisquer soluções que podem encurtar nomes de classes, da id, e mantê-los consistente em todos os documentos?

Algo que pode transformar este:

Index.html ---

<div class="fooBar">
  <!-- Code -->
</div>

Styles.css ---

.fooBar { 
  // Comments and Messages
  background-color: #000000; 
}

index.js ---

$(".fooBar").click( function () { 
  /* More Comments */
  alert( "fooBar" ); 
});

o neste:

Index.html ---

<div class="a"></div>

Styles.css ---

.a{background-color:#000;}

index.js ---

$(".a").click(function(){alert("fooBar");});
Foi útil?

Solução

O que você está procurando não está minifying, mas a compressão. Minifying por definição única remove espaços em branco, uma vez encurtando identificadores altera a interface, potencialmente quebrar scripts externos que dependem dele. Por esta razão, minifying é inerentemente 'mais seguro' do que a compressão, embora em um sistema fechado (ie. Um aplicativo web encapsulado), a compressão pode ser uma boa idéia.

Para Javascript , a maioria das pessoas usam o YUI Compressor ou Dean Edwards Packer .

Para CSS , há uma abundância de ferramentas para 'otimizar' os estilos, mas eu não sei de nenhum que nomes de classe encurtar bem. As razões para isso podem ser várias:

  1. Para compactar um arquivo CSS, o script precisa saber todos os arquivos HTML que incluí-lo, a fim de mudar as referências de classe e id dentro deles. Dependendo do tamanho e estrutura do seu site, o seu poderia ser não-trivial.
  2. Após a compressão, HTML semântica torna-se menos legível, como voltas <span class="image_caption"> em <span class="a12">, ou pior ainda, <p id="a12">.

Seria definitivamente ser possível fazer algo parecido com o que você descreve (e na verdade estou trabalhando em um pessoal CMS / framework que irá ), mas para que seja sustentável, ela provavelmente teria para ser parte integrante de um CMS bem estruturado, comprimindo todos os arquivos 'nos bastidores' sempre que uma nova mudança é publicado, mantendo todos os arquivos originais para que o site pode ser mantido como um todo.

Outras dicas

Eu uso http://www.w3compiler.com/ , que faz compressão e Obfuscation

Eu uso YUICompressor para minifying meu arquivos CSS e JS, e um programa chamado < a href = "http://www.bestcode.com/html/findreplace.html" rel = "nofollow noreferrer"> substituir fazer personalizado substituição das cordas em html (remoção de comentários, substituindo lib jquery local com Google api etc.)

Use um arquivo de lote para chamar o programa em todos os arquivos com uma extensão específica no diretório do projeto assim:

java -jar yuicompressor-2.4.2.jar -o temp\css\one-compressed.css temp\css\one.css
replace -quotes \q -srcdir temp\ -fname "*.php" -find "<script type=\qtext/javascript\q src=\qjs/jquery.js\q></script>" -replace "<script src=\qhttp://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js\q type=\qtext/javascript\q></script>"

e assim por diante.

Até agora, eu não tenho sido capaz de encontrar qualquer boa ferramenta para ofuscação. Mas estes dois sozinhos tornar a tarefa de minimização e compressão automatizada e muito mais fácil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top