Я пытаюсь свернуть созданную библиотеку.К сожалению, поскольку я начал разрабатывать библиотеку несколько лет назад, она не использует какой-либо стандартный способ объявления методов и частных свойств.По сути, мой код выглядит так:
/** @class Sample abstract class. */
myname.space.AbstractClass = function() {
/** Sample protected property A
* @private
*/
this.longNameProtectedPropertyA = 10;
/** Sample protected property B
* @private
*/
this.longNameProtectedPropertyB = 20;
}
/** Sample public method A.
* @methodOf myname.space.AbstractClass#
*/
myname.space.AbstractClass.prototype.publicMethodA = function() {
return this.longNamePrivatePropertyA;
}
/** Sample public method B.
* @methodOf myname.space.AbstractClass#
*/
myname.space.AbstractClass.prototype.publicMethodB = function() {
return this.longNamePrivatePropertyB;
}
/** @class Sample concrete class.
* @extends myname.space.AbstractClass
*/
myname.space.ConcreteClass = function() {
myname.space.AbstractClass.call(this);
/** Sample protected property C.
* @protected
*/
this.longNameProtectedPropertyC = 30;
}
myname.space.ConcreteClass.trickyExtend(myname.space.AbstractClass);
/** Overrides publicMethodB of the base class.
* @methodOf myname.space.ConcreteClass# */
myname.space.ConcreteClass.prototype.publicMethodB = function() {
return this.longNameProtectedPropertyC * this.longNameProtectedPropertyB;
}
В таком длинном примере я попытался показать стиль кодирования, который я использую.Я понимаю, что сегодня это нестандартно.Но моя библиотека уже написана таким образом, и она отлично работает.
Теперь моя проблема в том, что я хочу минимизировать код.Мне нужно сжать длинные имена частных свойств, но мне нужно сохранить имена открытых методов.
Я пробовал компрессор YUI и компилятор Google Closure.Ни один не работал так, как мне нужно.Либо имена как частных свойств, так и открытых методов были скрыты, либо ни одно из них не было.
Есть ли способ, как это сделать?Я готов потратить много времени, комментируя сотни моих методов / свойств, если это поможет.Есть ли какой-нибудь минификатор, который может мне помочь?