سؤال

أنا أكتب برنامج نصي دفعة من أجل تجميل كود جافا سكريبت.يحتاج إلى العمل على حد سواء شبابيك و لينكس.

كيف يمكنني تجميل كود JavaScript باستخدام أدوات سطر الأوامر؟

هل كانت مفيدة؟

المحلول

أولاً، اختر برنامج Pretty Print/Beautifier المفضل لديك المستند إلى Javascript.أنا أفضل واحد في http://jsbeautifier.org/, ، لأن هذا ما وجدته أولاً.يقوم بتنزيل الملف الخاص به https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js

ثانيًا، قم بتنزيل وتثبيت محرك Javascript المستند إلى Java الخاص بمجموعة Mozilla، وحيد القرن.كلمة "تثبيت" مضللة بعض الشيء؛قم بتنزيل الملف المضغوط، واستخرج كل شيء، ثم ضع js.jar في Java classpath (أو Library/Java/Extensions على OS X).يمكنك بعد ذلك تشغيل البرامج النصية باستدعاء مشابه لهذا

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

استخدم Pretty Print/Beautifier من الخطوة 1 لكتابة برنامج نصي صغير يمكن قراءته في ملف جافا سكريبت الخاص بك وتشغيله من خلال Pretty Print/Beautifier من الخطوة الأولى.على سبيل المثال

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

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

يمنح Rhino جافا سكريبت بعض الوظائف الإضافية المفيدة التي لا تكون بالضرورة منطقية في سياق المتصفح، ولكنها تكون مفيدة في سياق وحدة التحكم.تقوم وظيفة الطباعة بما تتوقعه، وتطبع سلسلة.تقبل الدالة readFile سلسلة مسار الملف كوسيطة وتقوم بإرجاع محتويات هذا الملف.

كنت استدعاء ما ورد أعلاه شيء من هذا القبيل

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

يمكنك مزج Java وJavascript ومطابقتهما في البرامج النصية الخاصة بتشغيل Rhino، لذلك إذا كنت تعرف القليل من Java، فلن يكون من الصعب جدًا تشغيل هذا مع تدفقات النص أيضًا.

نصائح أخرى

إذا كنت تستخدم Nodejs، فحاول قبيح-js

في Ubuntu 12.04، على افتراض أن لديك بالفعل عقدة Nodejs مثبتة، يمكنك تثبيت Ugliify باستخدام:

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 الذي يأتي معه Ubuntu 12.04:

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

أو يمكنك القيام بكل ذلك دفعة واحدة:

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

يمكنك معرفة المزيد عن unexpand هنا

وبعد كل هذا، انتهيت من الحصول على ملف يبدو كالتالي:

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

تحديث 2016-06-07

يبدو أن المشرف على uglify-js يعمل الآن على ذلك الإصدار 2 على الرغم من التثبيت هو نفسه.

تحديث أبريل 2014:

تمت إعادة كتابة أداة التجميل منذ أن أجبت على هذا السؤال في عام 2010.توجد الآن وحدة python هناك، وحزمة npm لـnodejs، وقد اختفى ملف jar.يرجى قراءة صفحة المشروع على github.com.

أسلوب بايثون:

 $ pip install jsbeautifier

أسلوب NPM:

 $ npm -g install js-beautify

لتستخدمها:

 $ js-beautify file.js

الجواب الأصلي

إضافة إلى إجابة @ آلان ستورم

تجميل سطر الأوامر على أساس http://jsbeautifier.org/ أصبح استخدامه أسهل قليلاً، لأنه الآن (بدلاً من ذلك) يعتمد على محرك جافا سكريبت V8 (كود c++) بدلاً من rhino (محرك JS المستند إلى Java، والذي تم تعبئته كـ "js.jar").لذا يمكنك استخدام V8 بدلاً من وحيد القرن.

كيف تستعمل:

قم بتنزيل ملف jsbeautifier.org المضغوط منhttp://github.com/einars/js-beautify/zipball/master

(هذا هو عنوان URL للتنزيل المرتبط بملف مضغوط مثل http://download.github.com/einars-js-beautify-10384df.zip)

قديم (لم يعد يعمل، اختفى ملف jar)

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

جديد (بديل)

تثبيت/تجميع v8 lib من svn، راجع v8/README.txt في الملف المضغوط المذكور أعلاه

  ./jsbeautify somefile.js

-لديه خيارات سطر أوامر مختلفة قليلاً عن إصدار وحيد القرن،

- ويعمل بشكل رائع في Eclipse عند تهيئته كـ "أداة خارجية"

على أوبونتو 18.04 LTS

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

في وحدة التحكم، يمكنك استخدام النمط الفني (الملقب ب.استايل) مع --mode=java.
إنه يعمل بشكل رائع ومجاني ومفتوح المصدر ومتعدد المنصات (Linux وMac OS X وWindows).

لا أستطيع إضافة تعليق على الإجابة المقبولة ولهذا السبب ترى منشورًا لم يكن من المفترض أن يكون موجودًا في المقام الأول.

في الأساس كنت بحاجة أيضًا إلى أداة تجميل جافا سكريبت في كود جافا ولدهشتي لم يكن أي منها متاحًا بقدر ما يمكنني العثور عليه.لذلك قمت بترميز واحدة بنفسي بناءً على الإجابة المقبولة (فهي تلتف حول البرنامج النصي jsbeautifier.org beautifier .js ولكنها قابلة للاستدعاء من Java أو سطر الأوامر).

الكود موجود في https://github.com/belgampaul/JsBeautifier

لقد استخدمت وحيد القرن وbeautifier.js

الاستخدام من وحدة التحكم:java -jar jsbeautifier.jar المسافة البادئة للبرنامج النصي

مثال:java -jar jsbeautifier.jar "function ff() {return;}" 2

الاستخدام من كود جافا:سلسلة jsBeautify العامة الثابتة (String jsCode، int indentSize)

انكم مدعوون الى تمديد التعليمات البرمجية.في حالتي، كنت بحاجة فقط إلى المسافة البادئة حتى أتمكن من التحقق من جافا سكريبت الذي تم إنشاؤه أثناء التطوير.

على أمل أن يوفر لك بعض الوقت في مشروعك.

لقد كتبت مقالا يشرح كيفية بناء تم تطبيق أداة تجميل جافا سكريبت لسطر الأوامر في جافا سكريبت في أقل من 5 دقائق.YMMV.

  1. قم بتنزيل أحدث إصدار مستقر من Rhino وقم بتفريغه في مكان ما، على سبيل المثال.~/dev/javascript/rhino
  2. قم بتنزيل beautify.js المشار إليه من jsbeautifier.org المذكور أعلاه ثم انسخه في مكان ما، على سبيل المثال.~/dev/javascript/bin/cli-beautifier.js
  3. أضف هذا في نهاية beautify.js (باستخدام بعض خصائص المستوى الأعلى الإضافية لجافا سكريبت):

    // 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. (اختياري) أضف المجلد الذي يحتوي على jsbeautifier.js إلى PATH أو انتقل إلى بعض المجلدات الموجودة بالفعل.

أعتقد أنه عندما سألت عن أداة سطر الأوامر، أردت فقط تجميل جميع ملفات js الخاصة بك دفعة واحدة.

في هذه الحالة، يستطيع Intellij IDEA (الذي تم اختباره باستخدام الإصدار 11.5) القيام بذلك.

تحتاج فقط إلى تحديد أي من ملفات مشروعك وتحديد "الرمز" -> "رمز إعادة التنسيق .." في قائمة IDE الرئيسية.ثم في مربع الحوار حدد "جميع الملفات في الدليل ..." ثم اضغط على "إدخال".فقط تأكد من تخصيص ذاكرة كافية لـ JVM.

استخدم طريقة JavaScript الحديثة:

يستخدم الناخر بالاشتراك مع البرنامج المساعد jsbeautifier لـ Grunt

يمكنك تثبيت كل شيء بسهولة في بيئة التطوير الخاصة بك باستخدام npm.

كل ما ستحتاج إليه هو إعداد Gruntfile.js بالمهام المناسبة، والتي يمكن أن تتضمن أيضًا تسلسل الملفات، والوبر، والتقبح، والتصغير، وما إلى ذلك، وتشغيل أمر grunt.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top