2010-12-06 2 views
5

Мне удалось создать приложение 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

ответ

3

Рассматривали ли вы с помощью externs. Насколько я знаю, это способ пойти, чтобы методы jQuery не сокращались в вашем коде. Externs for jQuery существуют в качестве вклада в проект закрытия.

Для пользовательского интерфейса jQuery вы можете попробовать this. Это то, что я натолкнул один раз, но не испытал его сам.

BTW: Если вам интересно, есть этот чрезвычайно удобный инструмент для закрытия: Plovr. Я использую его все время, и я работал с ним.

+0

Я пробовал использовать externs (с обычным jquery js) без успеха. Я не знал о «Externs for jQuery». Выглядит многообещающе, но мне все равно нужно что-то сделать с пользовательским интерфейсом jQuery. Спасибо за информацию о plovr! – Hernan 2010-12-06 22:04:50

Смежные вопросы