Какая библиотека минимизации JavaScript дает лучшие результаты? [закрыто]

Между Yahoo! UI Compressor , Dean Edwards Packer и jsmin , которые дают лучшие результаты, как с точки зрения получаемой площади, так и с меньшим количеством ошибок при запутывании.

11.12.2008 20:46:05
8 ОТВЕТОВ
РЕШЕНИЕ

Лучше немного субъективно, поскольку здесь нужно учитывать несколько факторов (даже помимо тех, которые вы перечислите):

  1. Сжатый размер не рассказывает всей истории, поскольку агрессивный компрессор может привести к снижению производительности во время выполнения из-за дополнительного времени, необходимого для запуска распаковки кода до интерпретации в браузере.
    • Ошибок проще всего избежать при управлении входным кодом - разумное использование точек с запятой имеет большое значение. Запустите JSLint поверх вашего кода и исправьте все обнаруженные проблемы.
    • Конечно, стиль и размер самого кода будут влиять на результаты.
    • И, наконец, стоит помнить, что сжатие gzip на стороне сервера всегда приводит к меньшей загрузке, чем любое сжатие кода, хотя некоторые инструменты сжатия кода будут эффективнее сочетаться с gzip.

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

3
11.12.2008 20:59:25
Как правило, рекомендуется оценивать производительность и видеть эффект, но в случае JSMin, Dojo ShrinkSafe и YUI Compressor они только уменьшают размер файла (заменяют символы, удаляют мертвый код) - они не изменяют поведение. Упаковщик Дина Эдварда действительно увеличивает время обработки.
orip 12.12.2008 00:03:52

Как пользователь Mootools, я заметил, что Mootools заменил упаковщик Дина Эдвардса на YUI Compressor. Я также помню, что на Ajaxian.com была дискуссия, на которой Жюльен (автор Compressor) указал на области, в которых YUI Compressor работал лучше. Я использовал Compressor и никогда не видел никаких проблем, но я никогда не учился тому, что дает меньше ошибок при запутывании.

0
11.12.2008 20:56:00

Компрессор YUI сжимает более безопасно и компактно, чем Пакер. Я считаю, что Packer нужно, чтобы JavaScript был идеально сформирован, иначе это приведет к ошибке JavaScript при загрузке скрипта. Тем не менее, независимо от того, что вы используете, вы получите наибольшее увеличение производительности, распаковав файл.

0
11.12.2008 21:13:54

Отличный способ сравнить лучшие компрессоры - это JavaScript CompressorRater от Артура Блейка.

Что вас обычно интересует, так это размер после сжатия с помощью GZIP (вы должны настроить свой веб-сервер для выполнения сжатия).

Наилучшие результаты обычно получаются от YUI Compressor или Dojo ShrinkSafe . Различия были настолько малы, что через некоторое время я перестал сравнивать и просто использую YUI Compressor.

РЕДАКТИРОВАТЬ: с того времени, когда этот вопрос был задан, было выпущено 2 новых минифайера. Они оба, по крайней мере, так же хороши, как, если не лучше, чем YUI Compressor.

РЕДАКТИРОВАТЬ 2:

  • UglifyJS , выбранный командой jQuery для официального релиза 1.5
11
13.02.2011 21:12:10

Определенно проверьте Dojo Shrinksafe . Он был недавно переработан, и, по-видимому, производительность была улучшена.

2
11.12.2008 22:17:30
+1 потому что мне не нужно скачивать его как у Yahoo.
Camilo Martin 8.12.2010 03:15:59

Есть также порт YUICompress для .NET (который включает в себя задачу сборки для TFS) на Codeplex.

0
14.01.2009 02:11:03

Это старый вопрос, и компилятор Google Closure тогда не существовал. Я еще не использовал это, но это выглядит действительно хорошо.

1
29.05.2010 09:10:53

Полное раскрытие, я за этим: http://www.toptensoftware.com/minime, который выполняет минимизацию, обфускацию и разумный набор проверок стиля линта. В настоящее время он производит меньше, чем Yui, и не так хорош, как Closure.

2
25.08.2010 14:36:06