Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

EDIT: начиная с первоначального времени, когда задавался этот вопрос, было выпущено 2 новых minifiers. Они оба, по крайней мере, так же хороши, как, если не лучше, компрессор YUI.

ИЗМЕНИТЬ 2:

  • UglifyJS, выбранный командой jQuery для официальной версии 1.5

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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