उपकरण को अनमनी करना / Decompress JavaScript [बंद]


430

क्या कोई कमांड लाइन स्क्रिप्ट और / या ऑनलाइन टूल हैं जो मिनिमाइज़ेशन के प्रभावों को समान कर सकते हैं कि कैसे साफ HTML को साफ कर सकते हैं?

(मैं विशेष रूप से एक छोटा जावास्क्रिप्ट फ़ाइल को कम करने के लिए देख रहा हूं, इसलिए चर का नाम बदलना अभी भी एक मुद्दा हो सकता है।)


4
आप में से जो लोग जागरूक नहीं हो सकते हैं, उनके लिए minification आंतरिक चर नामों को एक अक्षर में बदलता है और कोड टिप्पणियों को हटा देता है। इन परिवर्तनों को स्वचालित नहीं किया जा सकता है।
विवियन नदी

@DanielAllenLangdon अच्छा बिंदु। मैंने प्रश्न को संपादित कर दिया है, इसलिए इसका अर्थ यह नहीं है कि संशोधन चर नामों को नहीं बदलता है।
एंडी फोर्ड


marcusjenkins.com/linux/… ने मेरे लिए अच्छा काम किया।
11

1
@DanielAllenLangdon: jsnice.org के लिए 30k angularjs कोड को भी अनइंस्टाल कर सकते हैं और डि-ऑबस्पैक्ट कर सकते हैं।
ग्रीन

जवाबों:


504

आप इसका उपयोग कर सकते हैं: http://jsbeautifier.org/ लेकिन यह आपके द्वारा उपयोग की जा रही मिनी विधि पर निर्भर करता है, यह केवल कोड को प्रारूपित करता है, यह चर नामों को नहीं बदलता है, और न ही base62 एन्कोडिंग को अनलॉकर करता है।

संपादित करें: वास्तव में यह "पैक्ड" स्क्रिप्ट को अनपैक कर सकता है (डीन एडवर्ड के पैकर के साथ पैक किया गया है: http://dean.edwards.name/packer/ )


2
+1 - मैंने पहले इस विधि का उपयोग किया है, और jsbeautifier.org एक उत्कृष्ट सेवा है।
डैन ल्यू

धन्यवाद। यही वह है जिसकी तलाश में मैं हूं।
एंडी फोर्ड

5
नहीं, मैंने कहा कि आधार 62: dean.edwards.name/packer और en.wikipedia.org/wiki/Base_62
Fabien Ménager

4
क्या उपकरण के रूप में ऐसी कोई चीज़ है जो "परिवर्तनशील नाम" और अभी भी जेएस सिंटैक्स के बारे में जानते हैं जो कोड को नहीं तोड़ सकता है?
जॉर्ज वर्गास

3
अगर मैं कर सकता हूँ तो यह 10 गुना होगा। बस मुझे एक बर्बाद दिन से बचाया!
बेन्मुले

154

क्रोम डेवलपर टूल में यह सुविधा अंतर्निहित है। डेवलपर टूल्स को लाएँ (F12 को दबाने का एक तरीका है), स्रोत टैब में, नीचे बाईं ओर बार में माउस का एक सेट होता है। "{}" आइकन "सुंदर प्रिंट" है और मांग पर यह रूपांतरण करता है।

अद्यतन: IE9 "F12 डेवलपर टूल" में टूल आइकन के तहत स्क्रिप्ट टैब में "प्रारूप जावास्क्रिप्ट" सुविधा भी है। ( F12 में टिप # 4 देखें सबसे अच्छा वेब डिबगिंग गुप्त रखा गया )

यहां छवि विवरण दर्ज करें


1
विशेष .js के लिए मैं अन-मिनिफाई करने की कोशिश कर रहा था, इस विधि ने सबसे अच्छा काम किया, चीयर्स।
इग्नीओसर

1
यह अब "स्रोत" टैब में है, लिपियों टैब में नहीं।
mhenry1384

@ mhenry1384: हाँ, Chrome ने टैब का नाम बदला। मैंने उसी हिसाब से जवाब अपडेट किया।
जॉन एडम्स

हाँ!! (हमारे ऐप में js के लिए एक डीबग / डेव मोड नहीं है जिसके बारे में मुझे पता है - हम शुक्र है कि नाम को छोटा और रूपांतरित नहीं करते हैं।)
स्टीवन लू

2
बस एक सिर-अप: क्रोम कभी-कभी जावास्क्रिप्ट कोड को गड़बड़ करता है। उदाहरण के लिए, जो एक वाक्यविन्यास त्रुटि है के if (a) /regex/.match(foo);रूप में बहुत मुद्रित if (a)\n / /regex/ .\nmatch(foo);है।
एम्फ़ैटेमाचिन

56

समझ गया! JSBeautifier बिल्कुल यही करता है, और आपके पास ऑटो-फ़ॉर्मेटिंग के विकल्प भी हैं।


5
स्टैकओवरफ़्लो-तब-गूगल के बजाय गूगल-तब-स्टैकओवरफ़्लो? :))))
dfa

मैंने "जावास्क्रिप्ट
फॉर्मैटर

1
यह फ़ायर्फ़ॉक्स प्लग-इन जेएसब्युटिफ़ायर का उपयोग करता है जे-मिनीस्क्रिप्ट को अन-मिनिफाई करने के लिए ताकि आप फायरबग
BT

16

क्या आप केवल एक जावास्क्रिप्ट फॉर्मैटर ( http://javascript.about.com/library/blformat.htm ) का उपयोग नहीं कर सकते हैं ?


जवाब देने के लिए +1 जो काम करता है। फैबियन सिर्फ जवाब देने के लिए हुआ
एंडी फोर्ड

यह केवल प्रश्न के "डीकंप्रेस" भाग का उत्तर देता है।
जॉर्ज वर्गास

नहीं, यह अच्छा काम नहीं कर रहा है। यह कोड को तोड़ता है: ...(
रमेश

14

फ़ायरफ़ॉक्स, स्पाइडरमोंकी और राइनो में आप किसी भी कोड को एक अनाम फ़ंक्शन में लपेट सकते हैं और इसकी toSourceविधि को कॉल कर सकते हैं , जो आपको फ़ंक्शन का एक अच्छी तरह से स्वरूपित स्रोत देगा।

toSource टिप्पणियाँ भी निकालता है।

ई। जी। :

(function () { /* Say hello. */ var x = 'Hello!'; print(x); }).toSource()

एक स्ट्रिंग में परिवर्तित हो जाएगा:

function () {
    var x = "Hello!";
    print(x);
}

पुनश्च : यह एक "ऑनलाइन टूल" नहीं है, लेकिन सामान्य सौंदर्यीकरण तकनीकों के बारे में सभी प्रश्न इस एक के डुप्लिकेट के रूप में बंद हैं।


दिलचस्प। मैंने 2.5 साल पहले सवाल पूछा था इसलिए मुझे लगता है कि शीर्षक को संपादित करने में बहुत देर हो चुकी है, लेकिन मुझे अभी भी ऑनलाइन और ऑफलाइन दोनों विकल्प देखना पसंद है। चीमिंग के लिए धन्यवाद। +1
एंडी फोर्ड

10

यदि आपके पास एक मैक और टेक्स्टमैट है - जावास्क्रिप्ट को प्रारूपित करने का एक आसान विकल्प है:

  1. टेक्स्टमेट के साथ फाइल खोलें।
  2. > बंडलों> जावास्क्रिप्ट> सुधार दस्तावेज़ पर क्लिक करें
  3. क्रैक एक बीयर खोलें।

2
अभी बीयर परोसी जा रही है :)
dgilperez

6

अधिकांश IDE ऑटो स्वरूपण सुविधाएँ भी प्रदान करते हैं। उदाहरण के लिए NetBeans में, CTRL + K दबाएँ


5

एक विकल्प के रूप में (क्योंकि मुझे अब तक jsbeautifier.org के बारे में पता नहीं था), मैंने एक बुकमार्कलेट का उपयोग किया है जो डीन एडवर्ड के पैकर में डीकोड बटन को फिर से जेनरेट करता है।

मुझे यहां निर्देश और बुकमार्क मिले

यहाँ बुकमार्कलेट है (यदि साइट नीचे है)

javascript:for%20(i=0;i<document.forms.length;++i)%20{for(j=0;j<document.forms[i].elements.length;++j){document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);}}




5

स्टोन के समान के जवाब है, लेकिन विंडोज के लिए / नेट डेवलपर्स:

यदि आपके पास Visual Studio और ReSharper है - जावास्क्रिप्ट फॉर्मेट करने का एक आसान विकल्प है:

  • विज़ुअल स्टूडियो के साथ फ़ाइल खोलें;
  • ReSharper> Tools> Cleanup Code (Ctrl + E, C) पर क्लिक करें;
  • "डिफ़ॉल्ट: सुधार कोड" का चयन करें, और ठीक पर क्लिक करें;
  • क्रैक एक बीयर खोलें।

4

अपने मील-दूर-से-सुंदर इंटरफेस के बावजूद , JSPretty जावास्क्रिप्ट स्रोत कोड को मानव-पठनीय बनाने के लिए एक अच्छा, मुफ्त और ऑनलाइन टूल है। आप अपने पसंदीदा प्रकार के इंडेंटेशन को लागू कर सकते हैं और इससे आपत्ति का भी पता लगा सकते हैं।



3

बहुत मुश्किल है सुशोभित (सुंदर प्रिंट) जावास्क्रिप्ट को JSLint के अनुरूप बनाता है और JSHint सफेद अंतरिक्ष एल्गोरिदम के ।


यह विडंबना है कि यह साइट बहुत ही सुंदर है, लेकिन यह एक अच्छा उपकरण है।
एंडी फोर्ड


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.