Закрытие компилятора с помощью jquery

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

Как я уже сказал, я проверил это в небольшом приложении. Если у кого-то есть более крупное и сложное приложение, было бы неплохо знать, что это работает.

Спасибо,

хег

1 ответ

Решение

Рассматривали ли вы использование внешних. Насколько я знаю, это способ избежать сокращения методов jQuery в вашем коде. Экстерьеры для jQuery существуют как вклад в проект закрытия.

Для jQuery UI вы можете попробовать это. Это то, с чем я однажды сталкивался, но сам не проверял

КСТАТИ: Если вам интересно, есть очень удобный инструмент для сборки: Plovr. Я использую это все время, и я заставил работать с ним externs.

Другие вопросы по тегам