JavaScript Packer
Для упаковки JavaScript скриптов вполне сгодиться следующий ресурс (т.н. JavaScript Compressor или JavaScript Compressor, minimizer):
http://dean.edwards.name/packer/
Только будьте осторожны, проверяйте каждый скрипт после упаковки, он может потерять свою работоспособность
Похожие записи:
Метки: JavaScript


RSS
9/10/2008 в 10:05 дп
Здравствуйте. Сначала кратко: вот ссылка где можно взять стабильный компрессор:
http://www.russkiy-rim.ru/public/soft/jscompressor.html
Теперь подробнее: Нужно было сжать один .js файл. Стал я пользоваться всеми этими онлайн-компрессорами, котоых так много в сети. Нашел даже один платный!! И во всех них нашел какие-то баги. Вот пример кода, который сжимается неправильно простым компрессором
if(boolean)var varname=smth
else if (boolean) ..
Короче не понравилось мне это и я написал свой собственный компрессор. не удивляйтесь - сайт, на котором лежит дистрибутив посвящен наружной рекламе (хочу помочь другу набрать посетителей)
10/10/2008 в 9:50 пп
Друзья, смею обрадовать вас. Теперь по той же ссылке доступна новая версия - которая ко всему прочему сжимает локальные переменные и не портит регулярные выражения, записанные без кавычек.
Я тестировал программу на довольно больших кусках кода. Но вот маленький примерчик, с которым она легко справляется:
function test() {
var varOut/*a*/ = “opa”;
function testIn(param) {
var str = varOut+”2, param: “+param;
return str.replace(/ p/i, ”);
}
alert(testIn(”!”));
}
12/01/2009 в 7:50 дп
> if(boolean)var varname=smth
> else if (boolean) ..
само собой, ведь код сживается, из него удаляются все элементы форматировани я прочая ерунда в виде комментов
а молучился у вас if(boolean)var varname=smthelse if(boolean)
а теперь скажите что за зверь это smthelse? поэтому пишите
if(boolean)var varname=smth;
else if (boolean)
после обсурфикации код будет выглядеть как if(boolean)var varname=smth;else if(boolean)..
все true’шно и работает
11/11/2009 в 2:22 дп
Всё равно алгоритм обфускации Дина Эдвардса плохо переносит изощрённые комментарии.
Самый оптимальный вариант - две стадии компрессии.
1 Пропустить через YUI Compressor
Он замечательно работает с комментариями и к тому же код типа
b = ‘hi,’+'people’+'!’;
преобразует в
b = ‘hi,people!’;
2 Пропустить через http://dean.edwards.name/packer/ )))
В итоге код получится ещё меньше по объёму.