Der Versuch, gute Build-Umgebung für meine JS-Bibliothek vorzubereiten. Laut Bewertungen im Internet scheint UglifyJS eines der besten Kompressionsmodule zu sein, die unter NodeJS funktionieren. Hier ist also am besten empfohlene Weg, den Code von minifying:Uglify-js Variablennamen nicht fehlerhaft
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
Wie hier zu sehen ist, pro.ast_mangle(ast)
sollten Variablennamen mangeln, aber es funktioniert nicht. Alles, was ich aus dieser Pipe herausbekomme, ist JavaScript-Code, ohne Leerzeichen. Zuerst dachte ich, dass mein Code nicht für die Komprimierung optimiert war, aber dann versuchte ich es mit Google Closure und bekam eine ziemlich starke Komprimierung (mit verfälschten Variablennamen und allem).
UglifyJS Experten, irgendein Hinweis darauf, was ich falsch mache?
UPDATE:
Actual Code zu groß ist hier, zu verweisen aber auch ein Ausschnitt wie diese nicht verstümmelt bekommt:
;(function(window, document, undefined) {
function o(id) {
if (typeof id !== 'string') {
return id;
}
return document.getElementById(id);
}
// ...
/** @namespace */
window.mOxie = o;
}(window, document));
Dies ist, was ich (nur Räume zu bekommen und beraubt Ich schätze):
Ich denke, es würde helfen, wenn Sie ein kleines Code-Snippet und die Ergebnisse, mit denen Sie Probleme finden, veröffentlichen. –
Ich dachte, vielleicht gab es eine Option, die mir fehlte. Jetzt mit dem kleinen Ausschnitt aktualisiert.Offensichtlich ist es etwas mit meiner Umgebung? .. Obwohl nicht sicher, wo zu debuggen es oder was könnte beeinflussen Uglify-js Fähigkeit zu mangeln, wenn es angefordert wird. – jayarjo
Nun, über die Website von UglifyJS habe ich: '(Funktion (a, b, c) {Funktion d (a) {Rückgabetyp von a! =" Zeichenfolge "? A: b.getElementById (a)} a.mOxie = ao = d}) (Fenster, Dokument) 'Sind Sie sicher, dass Sie die richtigen Schalter eingeschaltet haben? –