Сократить весь каталог, сохранив связи Элемент / Стиль / Скрипт?

StackOverflow https://stackoverflow.com/questions/522315

Вопрос

Существуют ли в настоящее время какие-либо решения, которые могут сократить весь каталог проекта?Что еще более важно, существуют ли какие-либо решения, которые могут сократить имена классов, идентификаторы и сохранить их согласованными во всех документах?

Что-то, что может превратить это:

Index.html ---

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

Стили.css ---

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

Index.js ---

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

В Это:

Index.html ---

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

Стили.css ---

.a{background-color:#000;}

Index.js ---

$(".a").click(function(){alert("fooBar");});
Это было полезно?

Решение

То, что вы ищете, - это не сокращение, а сжатие.Сокращение по определению Только удаляет пробелы, поскольку сокращение идентификаторов изменяет интерфейс, потенциально нарушая работу внешних скриптов, которые зависят от него.По этой причине сокращение по своей сути "безопаснее", чем сжатие, хотя в закрытой системе (т.е.инкапсулированное веб-приложение), сжатие может быть хорошей идеей.

Для Javascript, большинство людей используют Компрессор YUI или Упаковщик Дина Эдвардса.

Для CSS, существует множество инструментов для "оптимизации" стилей, но я не знаю ни одного, который также сокращал бы имена классов.Причин для этого может быть несколько:

  1. Чтобы сжать CSS-файл, скрипту потребуется знать все HTML-файлы, которые его включают, чтобы изменить ссылки на класс и идентификатор внутри них.В зависимости от размера и структуры вашего веб-сайта, он может быть нетривиальным.
  2. После сжатия семантический HTML становится менее читабельным, так как <span class="image_caption"> превращается в <span class="a12">, или еще хуже, <p id="a12">.

Определенно было бы возможно сделать что-то вроде того, что вы описываете (и я на самом деле работаю над персональной CMS / фреймворком, который будет), но для того, чтобы его можно было поддерживать, он, вероятно, должен был бы быть интегрированной частью жестко структурированной CMS, сжимающей все файлы "за кулисами" всякий раз, когда публикуются новые изменения, сохраняя при этом все исходные файлы, чтобы сайт можно было поддерживать в целом.

Другие советы

Я использую http://www.w3compiler.com/ который выполняет сжатие и запутывание

Я использую Юикомпрессор для сокращения моих файлов css и js, а также программа под названием заменить для выполнения пользовательской замены строк в html (удаление комментариев, замена локальной библиотеки jquery на google api и т.д.)

Используйте пакетный файл для вызова программы для всех файлов с определенным расширением в каталоге вашего проекта, например:

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>"

и так далее.

До сих пор мне не удалось найти ни одного хорошего инструмента для обфускации.Но только эти два фактора делают задачу минимизации и сжатия автоматизированной и намного проще.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top