আমি জাভাস্ক্রিপ্ট কোডটি সুন্দর করার জন্য একটি ব্যাচের স্ক্রিপ্ট লিখছি। এটি উইন্ডোজ এবং লিনাক্স উভয় ক্ষেত্রেই কাজ করা দরকার ।
কমান্ড লাইন সরঞ্জামগুলি ব্যবহার করে আমি জাভাস্ক্রিপ্ট কোডটি কীভাবে সুন্দরী করব?
আমি জাভাস্ক্রিপ্ট কোডটি সুন্দর করার জন্য একটি ব্যাচের স্ক্রিপ্ট লিখছি। এটি উইন্ডোজ এবং লিনাক্স উভয় ক্ষেত্রেই কাজ করা দরকার ।
কমান্ড লাইন সরঞ্জামগুলি ব্যবহার করে আমি জাভাস্ক্রিপ্ট কোডটি কীভাবে সুন্দরী করব?
উত্তর:
প্রথমে আপনার প্রিয় জাভাস্ক্রিপ্ট ভিত্তিক প্রিটি প্রিন্ট / বিউটিফায়ার চয়ন করুন। আমি এটিকে পছন্দ করি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
আপনি নিজের রাইনো রান স্ক্রিপ্টগুলিতে জাভা এবং জাভাস্ক্রিপ্ট মিশ্রিত করতে পারেন এবং এটি মিলিয়ে নিতে পারেন, তাই আপনি যদি কিছুটা জাভা জানেন তবে টেক্সট-স্ট্রিমগুলির সাথে এটি চালানো খুব কঠিন হওয়া উচিত নয়।
এপ্রিল 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
- গণ্ডার সংস্করণের চেয়ে কিছুটা আলাদা কমান্ড লাইন অপশন,
- এবং "বাহ্যিক সরঞ্জাম" হিসাবে কনফিগার করা হলে ইক্লিপসে দুর্দান্ত কাজ করে
আপনি যদি নোডেজ ব্যবহার করছেন তবে 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-এ কাজ করছেন ।
uglifyjs -b
কেবল ইনডেন্টেশন ঠিক করার চেয়ে আরও অনেক কিছু করে, সম্ভবত দক্ষতার জন্য কোডটি পুনরায় সাজায় এবং পুনর্লিখন করে। এটা আমি চেয়েছিলাম না। আমি উবুন্টু 14.04 এ একটি পুরানো সংস্করণ ব্যবহার করছিলাম।
uglifyjs -b
কোডটি পুনরায় ব্যবস্থা এবং পুনর্লিখন করে?
$ sudo apt install jsbeautifier
$ js-beautify ugly.js > beautiful.js
জায়গাটি সুন্দর করে তোলার জন্য, যে কোনও ফোলউইং কমান্ড:
$ js-beautify -r file.js
$ js-beautify --replace file.js
js-beautify -o file.js file.js
কনসোলে আপনি আর্টিস্টিক স্টাইল (ওরফে এ্যাসটিল) এর সাথে ব্যবহার করতে পারেন --mode=java
।
এটি দুর্দান্ত কাজ করে এবং এটি বিনামূল্যে, ওপেন সোর্স এবং ক্রস প্ল্যাটফর্ম (লিনাক্স, ম্যাক ওএস এক্স, উইন্ডোজ)।
আধুনিক জাভাস্ক্রিপ্ট উপায় ব্যবহার করুন:
গ্রান্টের জন্য জসবিউটিফায়ার প্লাগইনের সাথে সম্মিলিতভাবে গ্রান্ট ব্যবহার করুন
আপনি এনপিএম ব্যবহার করে আপনার ডেভ পরিবেশে সহজেই সবকিছু ইনস্টল করতে পারেন ।
আপনার যা প্রয়োজন তা হ'ল উপযুক্ত কাজগুলি সহ একটি গ্রান্টফিল.জেএস সেট আপ করা উচিত যা ফাইল কনটেনটেশন, লিন্ট, ইউগ্লিফাই, মিনিফাই ইত্যাদি ইত্যাদি জড়িত এবং গ্রান্ট কমান্ড চালাতে পারে।
আমি গৃহীত উত্তরে একটি মন্তব্য যুক্ত করতে পারছি না তাই আপনি এমন একটি পোস্ট দেখেন যা প্রথম স্থানে থাকা উচিত ছিল না।
মূলত আমার কাছে জাভা কোডে একটি জাভাস্ক্রিপ্ট বিউটিফায়ার দরকার ছিল এবং আমার অবাক করে দিয়ে আমি খুঁজে পেলাম তেমন কোনওটি পাওয়া যায় না। সুতরাং আমি নিজেকে সম্পূর্ণরূপে গৃহীত উত্তরের উপর ভিত্তি করে কোড করেছি (এটি jsbeautifier.org বিউটিফায়ার .js স্ক্রিপ্টটি মোড়ায় তবে জাভা বা কমান্ড লাইন থেকে কলযোগ্য)।
কোডটি https://github.com/belgampaul/JsBeautifier এ অবস্থিত
আমি গণ্ডার এবং বিউটিফায়ার.জেএস ব্যবহার করেছি
কনসোল থেকে ব্যবহার করুন: জাভা-জার jsbeautifier.jar স্ক্রিপ্ট ইনডেন্টেশন
উদাহরণস্বরূপ: java -jar jsbeautifier.jar "ফাংশন এফএফ () {রিটার্ন;}" 2
জাভা কোড থেকে ব্যবহার করুন: পাবলিক স্ট্যাটিক স্ট্রিং জেএসবিউটিফাই (স্ট্রিং জেএসকোড, ইনটেন্টসাইট)
আপনি কোড প্রসারিত স্বাগত জানাই। আমার ক্ষেত্রে আমার কেবল ইনডেন্টেশন দরকার ছিল যাতে বিকাশকালে আমি উত্পন্ন জাভাস্ক্রিপ্টটি পরীক্ষা করতে পারি।
আশায় এটি আপনার প্রকল্পে আপনাকে কিছুটা সময় সাশ্রয় করবে।
আমি 5 মিনিটের মধ্যে জাভাস্ক্রিপ্টে প্রয়োগ করা একটি কমান্ড-লাইন জাভাস্ক্রিপ্ট বিউটিফায়ার কীভাবে তৈরি করবেন তা বোঝাতে একটি নিবন্ধ লিখেছি । ওয়াইএমএমভি
- সর্বশেষতম স্থিতিশীল গন্ডারটি ডাউনলোড করুন এবং এটিকে কোথাও আনপ্যাক করুন, যেমন ~ / dev / javascript / rhino
- উপরে বর্ণিত jsbeautifier.org থেকে রেফারেন্সযুক্ত বিউটিফাই.জেএস ডাউনলোড করুন তবে এটি অন্য কোথাও অনুলিপি করুন, যেমন ~ / দেব / জাভাস্ক্রিপ্ট / বিন / ক্লাই-বিউটিফায়ার.জেএস
বিউটিফাই.জেএস (জাভাস্ক্রিপ্টে কিছু অতিরিক্ত শীর্ষ-স্তরের বৈশিষ্ট্য ব্যবহার করে) এর শেষে এটি যুক্ত করুন:
// Run the beautifier on the file passed as the first argument. print( j23s_beautify( readFile( arguments[0] )));
এক্সিকিউটেবল ফাইলে নিম্নলিখিত কোডটি অনুলিপি করুন - যেমন ~ / 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 $*
(alচ্ছিক) প্যাথএইচএস বা ফোল্ডারে জেসবিউটিফায়ার.জেস যুক্ত ফোল্ডারটি যুক্ত করুন বা ইতিমধ্যে সেখানে থাকা কিছু ফোল্ডারে যান।
আমি বিশ্বাস করি যখন আপনি কমান্ড লাইন সরঞ্জাম সম্পর্কে জিজ্ঞাসা করেছিলেন আপনি কেবল আপনার সমস্ত জেএস ফাইলগুলি ব্যাচে সুন্দরী করতে চেয়েছিলেন।
এই ক্ষেত্রে ইন্টেলিজ আইডিইএ (11.5 এর সাথে পরীক্ষিত) এটি করতে পারে।
আপনার কেবলমাত্র আপনার প্রকল্পের ফাইল নির্বাচন করতে হবে এবং প্রধান আইডিই মেনুতে "কোড" -> "পুনরায় ফর্ম্যাট কোড .." নির্বাচন করতে হবে। তারপরে কথোপকথনে "সমস্ত ফাইল ডিরেক্টরিতে ..." নির্বাচন করুন এবং "এন্টার" টিপুন। আপনি নিশ্চিত হয়ে নিন যে আপনি জেভিএমের জন্য যথেষ্ট মেমরি নিবেদিত করেছেন।