Js kütüphanem için iyi bir yapı ortamı hazırlamaya çalışıyorum. Web üzerindeki incelemelere göre UglifyJS, NodeJS altında çalışan en iyi sıkıştırma modülleri arasında görünüyor. Yani burada kodunu küçültmek en iyi tavsiye yoludur: Burada görüldüğü gibiUglify-js, değişken isimleri karıştırmıyor
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)
değişken isimleri bozmak gerekir, ancak öyle değil. Bu pipetten çıkmış olduğum tek şey, boşluk içermeyen javascript kodu. İlk başta kodumun sıkıştırma için optimize edilmediğini düşündüm, ama sonra Google Closure ile denedim ve oldukça sıkıştırılmış oldum (karışık değişken isimleri ve her şey ile).
UglifyJS uzmanları, yanlış yaptığım şeylere ipucu veriyorlar mı?
GÜNCELLEME:
Gerçek kod burada başvurmak çok büyük, ama böyle bile pasajı parçalanmış almaz: Bu bana seni mi
;(function(window, document, undefined) {
function o(id) {
if (typeof id !== 'string') {
return id;
}
return document.getElementById(id);
}
// ...
/** @namespace */
window.mOxie = o;
}(window, document));
(sadece boşluk soyulmuş olsun I) tahmin: varsayılan çirkinleştirmek By
(function(window,document,undefined){function o(id){return typeof id!="string"?id:document.getElementById(id)}window.mOxie=window.o=o})(window,document)
Küçük bir kod parçacığı ve sorun bulduğunuz sonuçları gönderirseniz yardımcı olurum. –
Belki de eksik olduğum bir seçenek var diye düşündüm. Şimdi küçük snippet ile güncellendi.Açıkçası bu benim çevre ile bir şeydir? .. Bu hata ayıklama başlatmaya veya istendiğinde ne çirkinleştirmek-JS parçalamaya yeteneğini etkileyen olabileceği yerleri emin olmasa da. – jayarjo
Eh, UglifyJS web sitesi aracılığıyla, I got:!? '(Function a = "dizesi" typeof (a, b, c) {function d (a) {return a: b.getElementById (a)} a.mOxie = ao = d}) (pencere, belge) 'Doğru anahtarları açtığınızdan emin misiniz? –