कमांड लाइन जावास्क्रिप्ट कोड ब्यूटीफायर जो विंडोज और लिनक्स पर काम करता है


83

मैं एक कोड ब्यूटीफायर ढूंढ रहा हूं जो जावास्क्रिप्ट का समर्थन करता है और विंडोज और लिनक्स दोनों पर काम करता है और बैच स्क्रिप्ट में उपयोग किया जा सकता है। कोई सिफारिशें?

59

सबसे पहले, अपना पसंदीदा जावास्क्रिप्ट आधारित सुंदर प्रिंट/ब्यूटीफायर चुनें। मैं http://jsbeautifier.org/ पर एक को प्राथमिकता देता हूं, क्योंकि यह मुझे पहले मिला था। डाउनलोड अपनी फ़ाइल https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js

दूसरा, मोज़िला समूह के जावा आधारित जावास्क्रिप्ट इंजन, Rhino डाउनलोड और स्थापित करें। "इंस्टॉल करें" थोड़ा भ्रामक है; ज़िप फ़ाइल डाउनलोड करें, सब कुछ निकालें, अपने जावा क्लासपाथ में js.jar रखें (या ओएस एक्स पर लाइब्रेरी/जावा/एक्सटेंशंस)। इसके बाद आप से इस

java -cp js.jar org.mozilla.javascript.tools.shell.Main name-of-script.js 

उपयोग सुंदर प्रिंट/Beautifier चरण 1 एक छोटा सा खोल स्क्रिप्ट है कि अपने जावास्क्रिप्ट फ़ाइल में पढ़ सकते हैं और सुंदर प्रिंट के माध्यम से यह चलेगा लिखने के लिए से/Beautifier के समान एक मंगलाचरण के साथ स्क्रिप्ट चला सकते हैं पहला कदम। उदाहरण

//original code  
(function() { ... js_beautify code ... }()); 

//new code 
print(global.js_beautify(readFile(arguments[0]))); 

के लिए राइनो जावास्क्रिप्ट कुछ अतिरिक्त उपयोगी कार्यों जरूरी है कि एक ब्राउज़र संदर्भ में मतलब नहीं है, लेकिन एक सांत्वना संदर्भ में कर देता है। फंक्शन प्रिंट वह करता है जो आप उम्मीद करेंगे, और स्ट्रिंग को प्रिंट करता है। फ़ंक्शन readFile एक फ़ाइल पथ स्ट्रिंग को तर्क के रूप में स्वीकार करता है और उस फ़ाइल की सामग्री देता है।

आप की तरह

java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js 

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

http://www.yaldex.com/Free_JavaScript_Editor.htm

+3

आपके द्वारा दिया गया लिंक टूटा हुआ है, यह मुझे लगता है कि यह होना चाहिए, http: // jsbeautifier .org/ 12 jan. 102010-01-12 13:26:40

  0

सीनान सही है। लिंक http://jsbeautifier.org/ 15 jan. 102010-01-15 20:17:54

+2

पर कैसे चला गया: : ~ $ sudo apt-get libv8-dev libv8-2.2.18 : ~ $ cd einars-js-beautify-f90ce72/v8 : ~ $ g ++ -o jsbeautify jsbeautify.cpp -lv8 -llib -lpthread यह बस काम करता है। इयनार लिएलमैनिस और हर कोई शामिल है! 06 mar. 112011-03-06 13:45:20

+1

ये एक चलती लक्ष्य प्रतीत होता है। अब जेएसबीओटीफायर साइट पर जानकारी का कहना है कि यह पायथन में लिखा गया है। 26 apr. 112011-04-26 03:57:03

  0

cmdline उपयोगकर्ताओं के लिए अद्यतन, निम्नलिखित रिपो को सुंदर प्रिंटिंग जेएस के लिए स्टैंड अकेले कमांड लाइन टूल्स इंस्टॉल करना आसान है: https://github.com/einars/js-beautify.git 29 aug. 122012-08-29 19:31:53

  0

ग्रंट का उपयोग करके एक आधुनिक जेएस दृष्टिकोण का उपयोग करें: http://stackoverflow.com/questions/18985/what-javascript-code-beautifier-can-i-use-via-the-command-line-on-windows-and-li/25855828#25855828 15 sep. 142014-09-15 19:53:23

  0

आप बिना इसे आसानी से चला सकते हैं नोड से जावा। जेएस-सुंदरता नामक एक एनपीएम पैकेज है। इसे स्थापित करने के बाद आप कमांडर के रूप में इच्छित फ़ाइलों को पारित करने के लिए जेएस-सुंदरता आदेश चला सकते हैं। विवरण के लिए देखें: https://www.npmjs.com/package/js-beautify 13 oct. 152015-10-13 20:28:37

  0

मुझे कुछ गलत करना होगा। मुझे * जेएस मिल रहा है: uncaught जावास्क्रिप्ट रनटाइम अपवाद: संदर्भ त्रुटि: "js_beautify" परिभाषित नहीं किया गया है। * आदेश चलाने के बाद * java -jar js.jar beautify.js my-ugly-javascript.js *। मैंने 'प्रिंट जोड़ा (js_beautify (readFile (तर्क [0])); 'beautify.js के नीचे तक और राइनो 1.7.7 चला रहा हूं। कोई विचार? 25 jan. 162016-01-25 12:47:40

  0

मुझे पता चला कि यह नोटेशन '(फ़ंक्शन() {..blah ..}()) पसंद नहीं आया; और इसलिए इस कोड को कभी भी निष्पादित नहीं किया गया। मैंने पहले '(फ़ंक्शन() {' और अंतिम '}()) पर टिप्पणी की; 'और यह काम करना शुरू कर दिया।वहां आप जाते हैं :) 25 jan. 162016-01-25 13:25:04

  0

आपको 'global.js_beautify' को संदर्भित करना होगा। मैं एक संपादन करने के बारे में देखता हूँ। 16 jan. 172017-01-16 00:26:57


6

अब तक मैं ऑनलाइन लोगों की एक जोड़ी मिल गया है:

फिर भी कुछ मैं कमांड लाइन से भाग गया कर सकते हैं की तलाश में।

  0

मुझे लगता है यदि आप पाते हैं कि तुम क्या अब तक (4 साल बाद) की जरूरत है, लेकिन वहाँ हमेशा अजगर के json.tool है: http://richardlog.com/post/12743073497/pretty-printing-json-and-xml-on-mac-osx 27 mar. 122012-03-27 16:59:57


-3

यह एक नि: शुल्क स्टैंड-अलोन सजाने वाला (और भी बहुत कुछ) है। यह जावास्क्रिप्ट, सीएसएस, किसी भी मार्कअप भाषा का सौंदर्यीकरण और न्यूनीकरण का समर्थन करता है जो HTML शैली सहित XML शैली delimiters का उपयोग करता है।

http://prettydiff.com/?m=beautify


11

मेरे सुंदर Diff उपकरण जावास्क्रिप्ट में पूरी तरह से लिखा है तो यह सभी ऑपरेटिंग सिस्टम पर समान रूप से अच्छी तरह से काम करता है:


-1

beautifiers के आवंटित के साथ समस्या उत्पादन और फ़िल्टरिंग और गंभीर कमांड लाइन beautifiers की Sever कमी की पसंद है। मैंने हाल ही में कोड सुशोभित करने के लिए वाईयूआई कंप्रेसर को संशोधित करना शुरू कर दिया है। यदि आप अपना खुद का ब्यूटीफायर बनाना चाहते हैं तो मुझे इस दृष्टिकोण की अत्यधिक अनुशंसा करना है। वाईयूआई ओपन सोर्स है और एंट बिल्ड फाइल के साथ आता है जिससे इसे बदलने और संकलित करना बहुत आसान हो जाता है।


14

अद्यतन अप्रैल 2014:

सजाने वाला के बाद से मैं 2010 में इस जवाब अब वहाँ में एक अजगर मॉड्यूल, NodeJS के लिए एक NPM पैकेज है, और जार फ़ाइल चला गया है फिर से लिखा गया है। कृपया project page on github.com पढ़ें।

अजगर शैली:

$ pip install jsbeautifier 

NPM शैली:

$ npm -g install js-beautify 

इसका इस्तेमाल करने की:

$ js-beautify file.js 

मूल जवाब

@Alan तूफान

http://jsbeautifier.org/ पर आधारित कमांड लाइन ब्यूटीफायर का उपयोग करने में थोड़ा आसान हो गया है, क्योंकि यह अब (वैकल्पिक रूप से) rhino (जावा-आधारित) के बजाय वी 8 जावास्क्रिप्ट इंजन (सी ++ कोड) पर आधारित है जेएस इंजन, "js.jar" के रूप में पैक किया गया)। तो आप rhino के बजाय V8 का उपयोग कर सकते हैं।

का उपयोग कैसे करें: http://github.com/einars/js-beautify/zipball/master

से

डाउनलोड jsbeautifier.org ज़िप फ़ाइल

वर्ष (अब काम नहीं करता है (यह एक डाउनलोड URL ऐसे http://download.github.com/einars-js-beautify-10384df.zip के रूप में एक ज़िप फ़ाइल से जुड़ा हुआ है), जार फ़ाइल चला गया है)

java -jar js.jar name-of-script.js 

नई (वैकल्पिक)

स्थापित/SVN से v8 lib संकलन, उपर्युक्त ज़िप फ़ाइल में देख v8/README.txt

./jsbeautify somefile.js 

-Has राइनो संस्करण की तुलना में थोड़ा अलग कमांड लाइन विकल्प,

-और अच्छा काम करता है ग्रहण में जब "बाहरी उपकरण" के रूप में कॉन्फ़िगर किया गया

+3

या यदि आप v8 पर पायथन पसंद करते हैं, तो वहां * * * एक पायथन मॉड्यूल भी है। 04 oct. 112011-10-04 00:15:43

+1

एनपीएम पैकेज को जेएस-सुंदरता 13 oct. 152015-10-13 20:31:27


0

मैंने एक लेख लिखा है कि command-line JavaScript beautifier implemented in JavaScript को 5 मिनट से कम समय में कैसे बनाया जाए। YMMV।

  1. Download the latest stable Rhino and unpack it somewhere, e.g. ~/dev/javascript/rhino
  2. Download beautify.js which is referenced from aforementioned jsbeautifier.org then copy it somewhere, e.g. ~/dev/javascript/bin/cli-beautifier.js
  3. Add this at the end of beautify.js (using some additional top-level properties to JavaScript):

    // Run the beautifier on the file passed as the first argument. 
    print(j23s_beautify(readFile(arguments[0]))); 
    
  4. Copy-paste the following code in an executable file, e.g. ~/dev/javascript/bin/jsbeautifier.sh:

    #!/bin/sh 
    java -cp ~/dev/javascript/rhino/js.jar org.mozilla.javascript.tools.shell.Main ~/dev/web/javascript/bin/cli-beautifier.js $* 
    
  5. (optional) Add the folder with jsbeautifier.js to PATH or moving to some folder already there.


0

यह आपकी जेएस फाइलों को सुशोभित/इंडेंट करने के लिए एक बहुत ही उपयोगी वेबसाइट है। मैं अक्सर इसका इस्तेमाल करता हूं। चेक करें: http://jsbeautifier.org/


0

यहाँ एक जावास्क्रिप्ट नेट समर्थन कमांड लाइन में लिखा इंटरैक्टिव मोड के रूप में रूप में अच्छी तरह सजाने वाला है: http://www.rahulsingla.com/blog/2010/12/jsbeautifier-net-javascript-beautifier-in-net

नेट 2.0 को छोड़कर कोई बाहरी निर्भरता नहीं है।


-1

मैं इस (http://jsbeautifier.atomproject.net/) beautifier का उपयोग करता हूं। यह ऑनलाइन और मुफ्त है।


1

मैं स्वीकार्य उत्तर पर कोई टिप्पणी नहीं जोड़ पा रहा हूं इसलिए आप एक ऐसी पोस्ट देखते हैं जो पहले स्थान पर मौजूद नहीं होनी चाहिए।

मूल रूप से मुझे जावा कोड में जावास्क्रिप्ट ब्यूटीफायर की भी आवश्यकता होती है और मेरे आश्चर्य के लिए कोई भी उपलब्ध नहीं है जहां तक ​​मुझे मिल सकता है। तो मैंने पूरी तरह स्वीकार्य उत्तर के आधार पर स्वयं को कोड किया (यह jsbeautifier.org beautifier .js स्क्रिप्ट को लपेटता है लेकिन जावा या कमांड लाइन से कॉल करने योग्य है)।

कोड https://github.com/belgampaul/JsBeautifier

मैं राइनो इस्तेमाल किया पर स्थित है और से सांत्वना beautifier.js

उपयोग किया जाता है: जावा जार jsbeautifier.jar स्क्रिप्ट खरोज

उदाहरण: जावा जार jsbeautifier.jar " समारोह एफएफ() {वापसी;} "जावा कोड से 2

उपयोग: सार्वजनिक स्थैतिक स्ट्रिंग jsBeautify (स्ट्रिंग jsCode इंट indentSize)

कोड का विस्तार करने के लिए आपका स्वागत है। मेरे मामले में मुझे केवल इंडेंटेशन की आवश्यकता थी ताकि मैं विकसित होने के दौरान उत्पन्न जावास्क्रिप्ट को देख सकूं।

आशा में यह आपको आपकी परियोजना में कुछ समय बचाएगा।


23

आप NodeJS उपयोग कर रहे हैं तो uglify-js

Ubuntu 12.04 पर प्रयास करें, आप पहले से ही NodeJS स्थापित किया है यह सोचते हैं, आप स्थापित कर सकते हैं के साथ बदसूरत बनाना:

sudo npm install -g uglify-js

और फिर विकल्प प्राप्त:

uglifyjs -h

इसलिए यदि मेरे पास स्रोत फ़ाइल foo.js है जो इस तरह दिखती है:

// foo.js -- minified 
function foo(bar,baz){console.log("something something");return true;} 

मैं इतना है कि यह सुशोभित कर सकते हैं:

uglifyjs foo.js --beautify --output cutefoo.js

uglify डिफ़ॉल्ट रूप से खरोज के लिए रिक्त स्थान का उपयोग करता है, इसलिए यदि मैं टैब के लिए मैं unexpand जो Ubuntu 12.04 आता है के माध्यम से चला सकते हैं 4-अंतरिक्ष खरोज कनवर्ट करना चाहते हैं साथ:

unexpand --tabs=4 cutefoo.js > cuterfoo.js

या आप यह सब एक ही बार में कर सकते हैं:

uglifyjs foo.js --beautify | unexpand --tabs=4 > cutestfoo.js

आप यह सब मैं एक फ़ाइल के साथ हवा के बाद here

तो unexpand के बारे में और अधिक जानकारी प्राप्त कर सकते हैं कि इतने की तरह दिखता है:

function foo(bar, baz) { 
    console.log("something something"); 
    return true; 
} 

अद्यतन 2016-06-07

यह ऐसा लगता है कि uglify-js का रखरखाव अब version 2 पर काम कर रहा है हालांकि स्थापना समान है।

+2

कहा जाता है यह एक कमांड लाइन जावास्क्रिप्ट कोड beautifer के लिए ** सही ** उत्तर है। 19 apr. 162016-04-19 09:05:35

  0

'uglifyjs -b' इंडेंटेशन को ठीक करने से बहुत कुछ करता है, यह संभवतः दक्षता के लिए कोड को पुन: व्यवस्थित करता है और फिर से लिखता है। यही वह नहीं था जो मैं चाहता था। मैं उबंटू 14.04 में एक पुराने संस्करण का उपयोग कर रहा था। 14 aug. 172017-08-14 03:28:32

  0

क्या आप कृपया थोड़ा और बता सकते हैं कि 'uglifyjs -b' कैसे पुन: व्यवस्थित करता है और कोड को फिर से लिखता है? 14 aug. 172017-08-14 18:06:38


-1

आप नोटपैड का उपयोग करते हैं ++ यहां नोटपैड ++ http://www.sunjw.us/jsminnpp/


0

के लिए एक प्लगइन मेरा मानना ​​है कि जब आप कमांड लाइन टूल के बारे में पूछा तो आप सिर्फ बैच में अपने सभी js फ़ाइलों सुशोभित करना चाहता था है।

इस मामले में इंटेलिज आईडीईए (11.5 के साथ परीक्षण) यह कर सकता है।

आपको अपनी किसी भी प्रोजेक्ट फाइल का चयन करने और मुख्य आईडीई मेनू में "कोड" -> "सुधार कोड .." का चयन करने की आवश्यकता है। फिर संवाद में "निर्देशिका में सभी फाइलें ..." चुनें और "एंटर" दबाएं। बस सुनिश्चित करें कि आपने JVM के लिए पर्याप्त मेमोरी समर्पित की है।


0

कंसोल में, आप Artistic Style (a.k.a. AStyle) का उपयोग --mode=java के साथ कर सकते हैं।
यह बहुत अच्छा काम करता है और यह मुफ़्त, ओपन-सोर्स और क्रॉस-प्लेटफ़ॉर्म (लिनक्स, मैक ओएस एक्स, विंडोज) है।


0

आधुनिक जावास्क्रिप्ट तरीका का उपयोग करें: jsbeautifier plugin for Grunt

के साथ संयोजन में

उपयोग Grunt आप npm का उपयोग कर अपने देव वातावरण में आसानी से सब कुछ स्थापित कर सकते हैं।

आपको केवल आवश्यक कार्यों के साथ Gruntfile.js सेट अप करने की आवश्यकता होगी, जिसमें फाइल कॉन्सटेनेशन, लिंट, यूग्लिफ़ाई, मिनीफाइ आदि शामिल हो सकते हैं और ग्रंट कमांड चला सकते हैं।


-1

प्लगइन (1.15 के बाद से JSTool में बदला गया नाम) JSMinNpp नोटपैड का प्रयास ++

http://www.sunjw.us/jsminnpp/