Uglify-js не искажает имена переменных
Пытаюсь подготовить хорошую среду сборки для моей библиотеки js. По отзывам в интернетеUglifyJS кажется, один из лучших модулей сжатия, работающих под NodeJS. Итак, вот лучший рекомендуемый способ минимизации кода:
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
Как видно здесь,pro.ast_mangle(ast)
должен искажать имена переменных, но это не так. Все, что я получаю из этого канала, - это код JavaScript без пробелов. Сначала я думал, что мой код не был оптимизирован для сжатия, но потом я попробовал его сGoogle Closure и получил довольно сжатие (с искаженными именами переменных и все).
UglifyJS эксперты, любой намек на то, что я делаю неправильно?
UPDATE:
Фактический код слишком велик, чтобы ссылаться на него, но даже такой фрагмент не может быть поврежден:
;(function(window, document, undefined) {
function o(id) {
if (typeof id !== 'string') {
return id;
}
return document.getElementById(id);
}
// ...
/** @namespace */
window.mOxie = o;
}(window, document));
Это то, что я получаю (думаю, только пробелы удаляются):
(function(window,document,undefined){function o(id){return typeof id!="string"?id:document.getElementById(id)}window.mOxie=window.o=o})(window,document)