কমান্ড লাইন ব্যবহার করে আমি কীভাবে জাভাস্ক্রিপ্ট কোড সুন্দরী করতে পারি?


103

আমি জাভাস্ক্রিপ্ট কোডটি সুন্দর করার জন্য একটি ব্যাচের স্ক্রিপ্ট লিখছি। এটি উইন্ডোজ এবং লিনাক্স উভয় ক্ষেত্রেই কাজ করা দরকার ।

কমান্ড লাইন সরঞ্জামগুলি ব্যবহার করে আমি জাভাস্ক্রিপ্ট কোডটি কীভাবে সুন্দরী করব?


আমার প্রিটি ডিফ সরঞ্জামটি পুরোপুরি জাভাস্ক্রিপ্টে লিখিত তাই এটি সমস্ত অপারেটিং সিস্টেমে সমানভাবে কাজ করে। এটি জাভাস্ক্রিপ্ট, সিএসএস, এইচটিএমএল সহ এক্সএমএল স্টাইল ডিলিমিটার ব্যবহার করে এমন কোনও মার্কআপ ল্যাঙ্গুয়েজকে বিউটিফিকেশন এবং মাইনাইফিকেশন সমর্থন করে। prettydiff.com/?m=beautify

উত্তর:


64

প্রথমে আপনার প্রিয় জাভাস্ক্রিপ্ট ভিত্তিক প্রিটি প্রিন্ট / বিউটিফায়ার চয়ন করুন। আমি এটিকে পছন্দ করিhttp://jsbeautifier.org/ , কারণ এটি আমি প্রথমে খুঁজে পেয়েছি। এটির ফাইলটি ডাউনলোড করুন https://github.com

দ্বিতীয়ত, মোজিলা গ্রুপের জাভা ভিত্তিক জাভাস্ক্রিপ্ট ইঞ্জিন, রিনো ডাউনলোড এবং ইনস্টল করুন । "ইনস্টল" কিছুটা বিভ্রান্তিকর; জিপ ফাইলটি ডাউনলোড করুন, সমস্ত কিছু বের করুন, আপনার জাভা ক্লাসপথে js.jar রাখুন (বা ওএস এক্স-এ লাইব্রেরী / জাভা / এক্সটেনশনগুলি)। এরপরে আপনি অনুরূপ অনুরোধ সহ স্ক্রিপ্টগুলি চালাতে পারেন

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

একটি ছোট শেল স্ক্রিপ্ট লিখতে আপনার পদক্ষেপ 1 থেকে প্রেটি মুদ্রণ / বিউটিফায়ারটি ব্যবহার করুন যা আপনার জাভাস্ক্রিপ্ট ফাইলটিতে পড়বে এবং এটি প্রথম ধাপ থেকে প্রিন্টি প্রিন্ট / বিউটিফায়ারের মাধ্যমে চালাবে। উদাহরণ স্বরূপ

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

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

রাইনো জাভাস্ক্রিপ্টকে কয়েকটি অতিরিক্ত দরকারী ফাংশন দেয় যা অগত্যা কোনও ব্রাউজার প্রসঙ্গে উপলব্ধি করে না, তবে কনসোল প্রসঙ্গে করে। ফাংশন মুদ্রণটি আপনি যা চান তা করে এবং একটি স্ট্রিং প্রিন্ট করে। ফাংশন রিডফায়ার একটি ফাইল পাথ স্ট্রিংটিকে একটি আর্গুমেন্ট হিসাবে গ্রহণ করে এবং সেই ফাইলটির বিষয়বস্তু ফেরত দেয়।

আপনি উপরের মতো কিছু চাইবেন

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

আপনি নিজের রাইনো রান স্ক্রিপ্টগুলিতে জাভা এবং জাভাস্ক্রিপ্ট মিশ্রিত করতে পারেন এবং এটি মিলিয়ে নিতে পারেন, তাই আপনি যদি কিছুটা জাভা জানেন তবে টেক্সট-স্ট্রিমগুলির সাথে এটি চালানো খুব কঠিন হওয়া উচিত নয়।


4
আপনার দেওয়া লিঙ্কটি নষ্ট হয়ে গেছে, এটি আমার মনে হয় এটি হওয়া উচিত, jsbeautifier.org
সিনান

4
আমি এটি কীভাবে করেছি: এটা ঠিক কাজ করে। আইনার লিলমিনিস এবং জড়িত সবাইকে ধন্যবাদ!
45

4
এগুলি একটি চলন্ত লক্ষ্য বলে মনে হচ্ছে। এখন জসবিউটিফায়ার সাইটের তথ্য বলে যে এটি অজগরটিতে লেখা আছে।
শেঠ

সেমিডলাইন ব্যবহারকারীদের জন্য আপডেট করুন, নীচের রেপোতে
ড্রহডস

: একটি আধুনিক JS ব্যবহার করুন ঘোঁৎ ঘোঁৎ ব্যবহার পদ্ধতির stackoverflow.com/questions/18985/...
Tchakabam

35

এপ্রিল 2014 আপডেট করুন :

২০১০ সালে আমি এর জবাব দেওয়ার পর থেকে বিউটিফায়ারটি নতুন করে লেখা হয়েছে there এখন সেখানে একটি অজগর মডিউল রয়েছে, নোডেজের জন্য একটি এনপিএম প্যাকেজ, এবং জার ফাইলটি চলে গেছে। প্রকল্প পৃষ্ঠাটি দয়া করে github.com এ পড়ুন

পাইথন শৈলী:

 $ pip install jsbeautifier

এনপিএম শৈলী:

 $ npm -g install js-beautify

এটি ব্যবহার করতে:

 $ js-beautify file.js

আসল উত্তর

@ অ্যালান ঝড়ের উত্তরে যুক্ত করা হচ্ছে

কমান্ড লাইন বিউটিফায়ার উপর ভিত্তি করে http://jsbeautifier.org/ ব্যবহার করা কিছুটা সহজ হয়েছে, কারণ এটি এখন (বিকল্পভাবে) গন্ডার (জাভা ভিত্তিক জেএস ইঞ্জিন, প্যাকেজযুক্ত) পরিবর্তে ভি 8 জাভাস্ক্রিপ্ট ইঞ্জিন (সি ++ কোড) এর উপর ভিত্তি করে তৈরি হয়েছে "js.jar" হিসাবে)। সুতরাং আপনি গন্ডার পরিবর্তে ভি 8 ব্যবহার করতে পারেন।

ব্যবহারবিধি:

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

নতুন (বিকল্প)

এসভিএন থেকে ভি 8 লাইব ইনস্টল / সংকলন করুন, উপরে উল্লিখিত জিপ ফাইলে v8 / README.txt দেখুন

  ./jsbeautify somefile.js

- গণ্ডার সংস্করণের চেয়ে কিছুটা আলাদা কমান্ড লাইন অপশন,

- এবং "বাহ্যিক সরঞ্জাম" হিসাবে কনফিগার করা হলে ইক্লিপসে দুর্দান্ত কাজ করে


4
অথবা আপনি যদি V8 উপর পাইথন পছন্দ করেন, সেখানে আরো আছে একটি পাইথন মডিউল এখন।
কেটর্ন

4
এনপিএম প্যাকেজটিকে বলা হয় js-
be beautyfy

30

আপনি যদি নোডেজ ব্যবহার করছেন তবে uglify-js ব্যবহার করে দেখুন

লিনাক্স বা ম্যাক এ, ধরে নেওয়া হয়েছে যে আপনি ইতিমধ্যে নোডেজ ইনস্টল করেছেন, আপনি এর সাথে uglify ইনস্টল করতে পারেন:

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ডিফল্টরূপে ইন্ডেন্টেশনের জন্য স্পেস ব্যবহার করে তাই আমি যদি 4-স্পেস-ইনডেন্টেশনটিকে ট্যাবগুলিতে রূপান্তর করতে চাই তবে আমি এটি চালাতে পারি unexpandযার মাধ্যমে উবুন্টু 12.04 আসে:

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

অথবা আপনি একসাথে সব করতে পারেন:

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

আপনি এখানে আনসপ্যান্ড সম্পর্কে আরও জানতে পারেন

সুতরাং এত কিছুর পরেও আমি এমন একটি ফাইল দিয়ে শেষ করব যা দেখতে দেখতে:

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

আপডেট 2016-06-07

দেখা যাচ্ছে যে uglify-js এর রক্ষণাবেক্ষণকারী এখন সংস্করণ 2-এর মতো হলেও সংস্করণ 2-এ কাজ করছেন ।


4
এটি কোনও কমান্ড লাইন জাভাস্ক্রিপ্ট কোড বিউটিফায়ারের সঠিক উত্তর।
অ্যালেক্স বিটেক

uglifyjs -bকেবল ইনডেন্টেশন ঠিক করার চেয়ে আরও অনেক কিছু করে, সম্ভবত দক্ষতার জন্য কোডটি পুনরায় সাজায় এবং পুনর্লিখন করে। এটা আমি চেয়েছিলাম না। আমি উবুন্টু 14.04 এ একটি পুরানো সংস্করণ ব্যবহার করছিলাম।
স্যাম ওয়াটকিন্স

আপনি দয়া করে আরও কিছু ব্যাখ্যা করতে পারেন কীভাবে uglifyjs -bকোডটি পুনরায় ব্যবস্থা এবং পুনর্লিখন করে?
ইরাপার্ট

11

উবুন্টু এলটিএসে

$ sudo apt install jsbeautifier
$ js-beautify ugly.js > beautiful.js

জায়গাটি সুন্দর করে তোলার জন্য, যে কোনও ফোলউইং কমান্ড:

$ js-beautify -r file.js
$ js-beautify --replace file.js

4
এই মুহূর্তে সেরা উত্তর। js-beautify -o file.js file.js
ইনসুলেটরি সুন্দরী

4
Use -r, --replace ইনপুট আউটপুট লিখুন, ইনপুটটি js-beautify -r file.js প্রতিস্থাপন করুন
nkalra0123

3

কনসোলে আপনি আর্টিস্টিক স্টাইল (ওরফে এ্যাসটিল) এর সাথে ব্যবহার করতে পারেন --mode=java
এটি দুর্দান্ত কাজ করে এবং এটি বিনামূল্যে, ওপেন সোর্স এবং ক্রস প্ল্যাটফর্ম (লিনাক্স, ম্যাক ওএস এক্স, উইন্ডোজ)।


2

আধুনিক জাভাস্ক্রিপ্ট উপায় ব্যবহার করুন:

গ্রান্টের জন্য জসবিউটিফায়ার প্লাগইনের সাথে সম্মিলিতভাবে গ্রান্ট ব্যবহার করুন

আপনি এনপিএম ব্যবহার করে আপনার ডেভ পরিবেশে সহজেই সবকিছু ইনস্টল করতে পারেন ।

আপনার যা প্রয়োজন তা হ'ল উপযুক্ত কাজগুলি সহ একটি গ্রান্টফিল.জেএস সেট আপ করা উচিত যা ফাইল কনটেনটেশন, লিন্ট, ইউগ্লিফাই, মিনিফাই ইত্যাদি ইত্যাদি জড়িত এবং গ্রান্ট কমান্ড চালাতে পারে।


2

আমি গৃহীত উত্তরে একটি মন্তব্য যুক্ত করতে পারছি না তাই আপনি এমন একটি পোস্ট দেখেন যা প্রথম স্থানে থাকা উচিত ছিল না।

মূলত আমার কাছে জাভা কোডে একটি জাভাস্ক্রিপ্ট বিউটিফায়ার দরকার ছিল এবং আমার অবাক করে দিয়ে আমি খুঁজে পেলাম তেমন কোনওটি পাওয়া যায় না। সুতরাং আমি নিজেকে সম্পূর্ণরূপে গৃহীত উত্তরের উপর ভিত্তি করে কোড করেছি (এটি jsbeautifier.org বিউটিফায়ার .js স্ক্রিপ্টটি মোড়ায় তবে জাভা বা কমান্ড লাইন থেকে কলযোগ্য)।

কোডটি https://github.com/belgampaul/JsBeautifier এ অবস্থিত

আমি গণ্ডার এবং বিউটিফায়ার.জেএস ব্যবহার করেছি

কনসোল থেকে ব্যবহার করুন: জাভা-জার jsbeautifier.jar স্ক্রিপ্ট ইনডেন্টেশন

উদাহরণস্বরূপ: java -jar jsbeautifier.jar "ফাংশন এফএফ () {রিটার্ন;}" 2

জাভা কোড থেকে ব্যবহার করুন: পাবলিক স্ট্যাটিক স্ট্রিং জেএসবিউটিফাই (স্ট্রিং জেএসকোড, ইনটেন্টসাইট)

আপনি কোড প্রসারিত স্বাগত জানাই। আমার ক্ষেত্রে আমার কেবল ইনডেন্টেশন দরকার ছিল যাতে বিকাশকালে আমি উত্পন্ন জাভাস্ক্রিপ্টটি পরীক্ষা করতে পারি।

আশায় এটি আপনার প্রকল্পে আপনাকে কিছুটা সময় সাশ্রয় করবে।


1

আমি 5 মিনিটের মধ্যে জাভাস্ক্রিপ্টে প্রয়োগ করা একটি কমান্ড-লাইন জাভাস্ক্রিপ্ট বিউটিফায়ার কীভাবে তৈরি করবেন তা বোঝাতে একটি নিবন্ধ লিখেছি । ওয়াইএমএমভি

  1. সর্বশেষতম স্থিতিশীল গন্ডারটি ডাউনলোড করুন এবং এটিকে কোথাও আনপ্যাক করুন, যেমন ~ / dev / javascript / rhino
  2. উপরে বর্ণিত jsbeautifier.org থেকে রেফারেন্সযুক্ত বিউটিফাই.জেএস ডাউনলোড করুন তবে এটি অন্য কোথাও অনুলিপি করুন, যেমন ~ / দেব / জাভাস্ক্রিপ্ট / বিন / ক্লাই-বিউটিফায়ার.জেএস
  3. বিউটিফাই.জেএস (জাভাস্ক্রিপ্টে কিছু অতিরিক্ত শীর্ষ-স্তরের বৈশিষ্ট্য ব্যবহার করে) এর শেষে এটি যুক্ত করুন:

    // Run the beautifier on the file passed as the first argument.
    print( j23s_beautify( readFile( arguments[0] )));
    
  4. এক্সিকিউটেবল ফাইলে নিম্নলিখিত কোডটি অনুলিপি করুন - যেমন ~ / 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. (alচ্ছিক) প্যাথএইচএস বা ফোল্ডারে জেসবিউটিফায়ার.জেস যুক্ত ফোল্ডারটি যুক্ত করুন বা ইতিমধ্যে সেখানে থাকা কিছু ফোল্ডারে যান।


1

আমি বিশ্বাস করি যখন আপনি কমান্ড লাইন সরঞ্জাম সম্পর্কে জিজ্ঞাসা করেছিলেন আপনি কেবল আপনার সমস্ত জেএস ফাইলগুলি ব্যাচে সুন্দরী করতে চেয়েছিলেন।

এই ক্ষেত্রে ইন্টেলিজ আইডিইএ (11.5 এর সাথে পরীক্ষিত) এটি করতে পারে।

আপনার কেবলমাত্র আপনার প্রকল্পের ফাইল নির্বাচন করতে হবে এবং প্রধান আইডিই মেনুতে "কোড" -> "পুনরায় ফর্ম্যাট কোড .." নির্বাচন করতে হবে। তারপরে কথোপকথনে "সমস্ত ফাইল ডিরেক্টরিতে ..." নির্বাচন করুন এবং "এন্টার" টিপুন। আপনি নিশ্চিত হয়ে নিন যে আপনি জেভিএমের জন্য যথেষ্ট মেমরি নিবেদিত করেছেন।


0

আপনার কয়েকটি লাইনার পছন্দ আছে। এনপিএম সহ অথবা এনপিএক্স সহ স্ট্যান্ড স্টোন ব্যবহার করুন ।

সেমিস্তানদার

npx semistandard "js/**/*.js" --fix

স্ট্যান্ডার্ড

npx standard "js/**/*.js" --fix

সুন্দর

npx prettier --single-quote --write --trailing-comma all "js/**/*.js"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.