Минимизирайте и объркайте кода на JavaScript в Java

Използвам YUI Compressor от години, за да минимизирам и объркам JS файлове. Но сега трябва да объркам и минимизирам динамично генерирания JavaScript код на сървъра. Така че основната разлика тук е, че няма да има JS файлове, които трябва да бъдат обфусцирани, а заявки към сървъра (Java), който трябва да генерира части от JS код и да ги върне вече минимизирани и обфусцирани.

YUI Compressor не дава възможност за това. Гледах в източниците и вече разбрах какви методи трябва да бъдат отменени, за да работи. Не бих искал да правя това (но ще трябва, в случай че няма друг начин).

И така, има ли други Java библиотеки, позволяващи минимизиране и обфускация на JavaScript низове директно от Java код?


person Dmitry B.    schedule 22.12.2012    source източник
comment
Кодът наистина ли е генериран? Защо логиката за генериране не може да създаде код, който е минимизиран (използвайки кратки имена на променливи).   -  person closure    schedule 22.12.2012
comment
Това е добрата точка и аз също се замислих върху това. Но не целият код е напълно генериран. Той е изграден от някои вече създадени шаблони и произвежда и някакъв код. Вашето решение е добър начин да помислите, но просто искам да съм сигурен, че няма други решения, които мога да използвам.   -  person Dmitry B.    schedule 22.12.2012
comment
Моето предложение е да прочетете малко за минимизирането. Не мисля, че minifier прави много. Вашето минимизиране ще бъде по-добро, докато генерирате кода и имате пълен контрол върху логиката.   -  person closure    schedule 22.12.2012
comment
вижте тази библиотека на Java.   -  person Eliran Malka    schedule 22.12.2012
comment
@EliranMalka Премахнах връзката към Кой е най-добрият безплатен обфускатор на JavaScript, който се предлага като библиотека на Java? тъй като въпросът все още е отворен.   -  person Cœur    schedule 08.07.2018


Отговори (1)


План а)

Използвайте YUI не като инструмент за команден ред, а като Java библиотека и го извикайте във вашия код.

JavaScriptCompressor приема наследник на Reader (напр. InputFileReader).

    JavaScriptCompressor compressor = new JavaScriptCompressor(in, new YuiCompressorErrorReporter());

Всъщност можете да получите необработения си JavaScript и да го конвертирате в поток, напр. Как да конвертирам низ във InputStream в Java?

Пълен пример за интеграция е тук:

http://blog.teamextension.com/yui-compressor-in-java-246

План б)

Имайте предвид, че можете просто да запишете генерирания javascript във файловата система и да извикате командния ред Yui от Java. След това прочетете минимизирания файл от файловата система и това е всичко, имате минимизиран JS.

person Gee Bee    schedule 28.06.2017