Почему Google Closure Compiler оставляет несколько лишних пробелов или разрывов строк? - PullRequest
23 голосов
/ 11 июня 2010

Я заметил, что каждый раз, когда я использую Службу компиляции Google Closure , в скомпилированном коде, представленном в правой части страницы, остается несколько лишних пробелов.Они соответствуют разрывам строк в размещенной версии скомпилированного кода.

Например (обратите внимание на разрывы строк, каждый из которых кажется ненужным):

http://troy.onespot.com/static/stack_overflow/closure_spaces.js

На сегодняшний день я просто удаляю их вручную, но мне любопытно, почему они там есть.Это ограничивает длину строки размещенной версии кода, чтобы сделать его более читабельным?Может ли компилятор быть достаточно умным, чтобы оставлять или вставлять его намеренно, чтобы максимизировать усилия сжатия GZIP?

Я знаю, что они оказывают тривиальное влияние на размер файла, но с таким большим усилием затрачивается на минимизацию каждого последнего байтаИсходный скрипт, нелогично, почему они там.

1 Ответ

38 голосов
/ 11 июня 2010

Цитата FAQ по компилятору закрытия :

Почему в скомпилированных сценариях есть случайные переводы строк?

Компилятор закрытия намереннодобавляет разрывы строк каждые 500 символов или около того.Брандмауэры и прокси-серверы иногда портят или игнорируют большие файлы JavaScript с очень длинными строками.Добавление разрывов строк каждые 500 символов предотвращает эту проблему.Удаление разрывов строк не влияет на семантику скрипта.Влияние на размер кода невелико, и компилятор оптимизирует размещение разрыва строки, так что размер штрафа кода становится еще меньше при сжатии файлов.

Вы знали, что это умно!:)

...