Мне удалось создать js-приложение небольшого размера, которое использует jQuery и jQuery UI, используя компилятор Google Closure с расширенной оптимизацией. Просто для ясности: я не скомпилировал сам jQuery, просто мое приложение, которое использует jquery. Я хотел бы знать, может ли кто-нибудь подтвердить, что эта идея также работает для больших и более сложных приложений.
Процедура следующая:
0.- У вас есть html-файл, который вызывает jquery-1.4.3.min.js, test1.js и test2.js
1.- скомпилируйте ваше приложение и экспортируйте файл карты свойств
java -jar closure-compiler.jar \
--compilation_level ADVANCED_OPTIMIZATIONS \
--js test1.js --js test2.js \
--property_map_output_file prop.out > min.js
Карта свойств - это файл ключа / значения, который содержит имя свойства до и после компиляции:
aprop:a
html:b
each:c
2.- Скопируйте prop.out в prop.in и отредактируйте его так, чтобы свойства (функции) jQuery были заменены на одно и то же имя (это можно легко автоматизировать с помощью функции jquery для списка):
aprop:a
html:html
each:each
3.- Перекомпилировать, используя prop в качестве входных данных карты свойств
java -jar closure-compiler.jar \
--compilation_level ADVANCED_OPTIMIZATIONS \
--js test1.js --js test2.js \
--property_map_input_file prop.in > min.js
4.- Теперь в вашем html включите min.js и jquery-1.4.3.min.js. Приложение должно быть функциональным, но ваш код должен быть быстрее и меньше.
Это минимизирует ваш код, а не jquery.
Как я уже сказал, я проверил это в небольшом приложении. Если у кого-то есть более крупное и сложное приложение, было бы неплохо знать, что это работает.
Спасибо
хег