Вопрос по google-closure-compiler, javascript, minify, google-closure – Почему Google Closure Compiler оставляет несколько лишних пробелов или разрывов строк?

23

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

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

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

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

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

Самая сумасшедшая вещь - это то, что Google PageSpeed ​​Insights жалуется на несколько байтов (<1 КБ), и когда я загружаю оптимизированные файлы, у js есть строки длиной 180 КБ, но нет способа дать указание компилятору Closure (API или приложению JAVA) разбивать строки. любой длины (например, 180K) Jose Nobile
Я не могу получить к этому доступdefault.jsссылка возвращает страницу с длиной контента равной 0. Можете ли вы вставить (частично) код в свой вопрос? Marcel Korpel
Извините за это - я предположил, что Google размещал скомпилированный код на неопределенный срок, но, видимо, они не. Я обновил ссылку в вопросе выше. Bungle

Ваш Ответ

1   ответ
38

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

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

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

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

Круто, это решает это! Я не видел FAQ - спасибо за ссылку, и я ценю ответ. Bungle
Самая сумасшедшая вещь - это то, что Google PageSpeed ​​Insights жалуется на несколько байтов (<1 КБ), и когда я загружаю оптимизированные файлы, у js есть строки длиной 180 КБ, но нет способа дать указание компилятору Closure (API или приложению JAVA) разбивать строки. любой длины (например, 180K) Jose Nobile
@JoseNobile Я недавно столкнулся с этой проблемой разрыва строки с Java-приложением. Я работал над этим, удаляя вручную разрывы строк, введенные компилятором замыкания. Stephan

Похожие вопросы