Когда я минимизирую css или js, почему не все в одной строке?
Я понимаю, что минимизация пытается уменьшить размер файла путем удаления пробельных символов. Иногда вещи оказываются в одной строке, но чаще всего есть несколько строк. Я заметил, что разрывы строк происходят везде, где есть пробелы. Разве не было бы лучше, чтобы все это было в одной строке?
3 ответа
Учитывая отсутствие примера кода и информации о том, как выполняется минификация, я бы предпочел следующее: все, что вы используете для просмотра кода, выполняет перенос слов, и в нем нет никаких действительно новых строк.
Что касается JavaScript, разрыв строки может означать конец оператора (вместо ;
). Таким образом, размещение всего в одной строке может вызвать проблемы с функционированием кода.
Я думаю, это зависит от того, какой минимизатор вы используете, но это может быть одной из причин. Я думаю, что минимизатор попытается учесть это и поставить точки с запятой, где это возможно, но эта способность может сильно отличаться между ними.
Если вы используете yuicompressor-maven-plugin, вы можете столкнуться с этой проблемой. Плагин YUI-компрессора имеет опцию linebreakpos, для которой значение по умолчанию равно нулю. Если вы прочтете описание о том, как эта опция используется исходной библиотекой компрессора YUI на этой странице, вы заметите, что нулевое значение для этого значения означает, что после правила CSS будет использоваться новая строка после правила CSS или точка с запятой в javascript,
К счастью, взгляд на реализацию предлагает легкий обходной путь. Просто укажите любое значение меньше 0, и все должно получиться.