Uglify-js nie zmienia nazw zmiennych
Próbuję przygotować dobre środowisko do tworzenia mojej biblioteki js. Według opinii w internecieUglifyJS wydaje się być jednym z najlepszych modułów kompresujących, pracujących pod NodeJS. Oto najlepszy zalecany sposób minimalizowania kodu:
var jsp = require("uglify-js").parser;
var pro = require("uglify-js").uglify;
var orig_code = "... JS code here";
var ast = jsp.parse(orig_code); // parse code and get the initial AST
ast = pro.ast_mangle(ast); // get a new AST with mangled names
ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
var final_code = pro.gen_code(ast); // compressed code here
Jak widać tutajpro.ast_mangle(ast)
powinien zmieniać nazwy zmiennych, ale tak nie jest. Wszystko, co wychodzę z tego potoku, to kod javascript, bez spacji. Początkowo myślałem, że mój kod nie został zoptymalizowany pod kątem kompresji, ale potem spróbowałemZamknięcie Google i dostał dość kompresji (z zniekształconymi nazwami zmiennych i wszystkim).
Eksperci UglifyJS, każda wskazówka co robię źle?
AKTUALIZACJA:
Rzeczywisty kod jest zbyt duży, by się tu odwoływać, ale nawet taki fragment nie ulega zniekształceniu:
;(function(window, document, undefined) {
function o(id) {
if (typeof id !== 'string') {
return id;
}
return document.getElementById(id);
}
// ...
/** @namespace */
window.mOxie = o;
}(window, document));
To jest to, co otrzymuję (myślę, że tylko spacje są rozbierane):
(function(window,document,undefined){function o(id){return typeof id!="string"?id:document.getElementById(id)}window.mOxie=window.o=o})(window,document)