मेरी जेएस लाइब्रेरी के लिए अच्छा निर्माण वातावरण तैयार करने की कोशिश कर रहा है। वेब UglifyJS पर समीक्षाओं के मुताबिक, नोडजेएस के तहत काम कर रहे सबसे अच्छे संपीड़न मॉड्यूल में से एक प्रतीत होता है। तो यहाँ कोड को कम करने का सबसे अच्छा तरीका है सिफारिश:Uglify-js परिवर्तनीय नामों को मंगल नहीं करता
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)
चर नाम वध करना चाहिए, लेकिन ऐसा नहीं है। मैं इस पाइप से बाहर निकलता हूं, बिना किसी रिक्त स्थान के जावास्क्रिप्ट कोड है। पहले मैंने सोचा था कि मेरा कोड संपीड़न के लिए अनुकूलित नहीं किया गया था, लेकिन फिर मैंने Google Closure के साथ इसे आजमाया और काफी संपीड़न (मैंगलेड वैरिएबल नाम और सब कुछ के साथ) मिला।
UglifyJS विशेषज्ञ, क्या मैं गलत कर रहा हूं के लिए कोई संकेत?
अद्यतन:
वास्तविक कोड यहाँ संदर्भ के लिए बहुत बड़ी है, लेकिन फिर भी इस तरह एक टुकड़ा घायल नहीं मिलता है:
;(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)
मुझे लगता है कि अगर आप कोड का एक छोटा सा स्निपलेट पोस्ट करते हैं और परिणाम जो आपको समस्याएं मिलती हैं तो इससे मदद मिलेगी। –
मैंने सोचा कि शायद कुछ विकल्प था जो मैं याद कर रहा था। छोटे स्निपेट के साथ अब अपडेट किया गया।जाहिर है यह मेरे पर्यावरण के साथ कुछ है? .. हालांकि यह सुनिश्चित नहीं है कि इसे डिबग करना शुरू करना है या जब अनुरोध किया जाता है, तो उलझाने की क्षमता को प्रभावित करने के लिए क्या हो सकता है। – jayarjo
ठीक है, UglifyJS की वेबसाइट के माध्यम से, मुझे मिला: '(फ़ंक्शन (ए, बी, सी) {फ़ंक्शन डी (ए) {वापसी प्रकार एक! = "स्ट्रिंग"? ए: बी .getElementById (ए)} a.mOxie = एओ = डी}) (खिड़की, दस्तावेज) 'क्या आप वाकई सही स्विच चालू कर चुके हैं? –