Мне удалось создать приложение js малого размера, которое использует jQuery и jQuery UI, используя компилятор закрытия Google с расширенными оптимизациями. Просто для ясности: я не скомпилировал jQuery сам, просто мое приложение, которое использует jquery. Я хотел бы знать, может ли кто-нибудь подтвердить, что эта идея также работает для более крупных и сложных приложений.Приложение для компиляции Closure с помощью 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.- Copy prop.out в prop.in и редактировать его так, чтобы Jquery свойства (функции) заменяются одним и тем же именем (это может быть легко автоматизирован с помощью функции элемента списка Jquery в):
aprop:a
html:html
each:each
3.- Перекомпилируйте используя проп в качестве входных данных карты свойства
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's.
Как я уже сказал, я проверил это в небольшом приложении. Если у кого-то есть более крупное и сложное приложение, было бы неплохо узнать, что это работает.
Спасибо,
HEG
Я пробовал использовать externs (с обычным jquery js) без успеха. Я не знал о «Externs for jQuery». Выглядит многообещающе, но мне все равно нужно что-то сделать с пользовательским интерфейсом jQuery. Спасибо за информацию о plovr! – Hernan 2010-12-06 22:04:50