回答:
まず、お気に入りのJavascriptベースのPretty Print / Beautifierを選択します。の方がいいhttp://jsbeautifier.org/、それは私が最初に見つけたものだからです。ファイルをダウンロードしますhttps://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
次に、MozillaグループのJavaベースのJavascriptエンジンであるRhinoをダウンロードしてインストールします。「インストール」は少し誤解を招く可能性があります。zipファイルをダウンロードしてすべてを抽出し、js.jarをJavaクラスパス(またはOS XではLibrary / Java / Extensions)に配置します。その後、次のような呼び出しでスクリプトを実行できます
java -cp js.jar org.mozilla.javascript.tools.shell.Main name-of-script.js
手順1のPretty Print / Beautifierを使用して、JavaScriptファイルを読み取り、手順1のPretty Print / Beautifierで実行する小さなシェルスクリプトを記述します。例えば
//original code
(function() { ... js_beautify code ... }());
//new code
print(global.js_beautify(readFile(arguments[0])));
Rhinoは、JavaScriptにいくつかの追加の便利な機能を提供します。これらの機能は、ブラウザーのコンテキストでは必ずしも意味がありませんが、コンソールのコンテキストでは機能します。関数printはあなたが期待することを行い、文字列を出力します。関数readFileはファイルパス文字列を引数として受け入れ、そのファイルの内容を返します。
あなたは上のようなものを呼び出すでしょう
java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js
Rhino実行スクリプトでJavaとJavascriptを混在させて一致させることができるため、少しのJavaを知っている場合でも、テキストストリームでこれを実行するのはそれほど難しくありません。
2014年4月の更新:
2010年に私がこれに回答してから、美容ツールが書き直されました。Pythonモジュールがそこにあり、nodejs用のnpmパッケージがあり、jarファイルはなくなりました。github.comのプロジェクトページをお読みください。
Pythonスタイル:
$ pip install jsbeautifier
NPMスタイル:
$ npm -g install js-beautify
それを使用するには:
$ js-beautify file.js
元の答え
@Alan Stormの回答に追加
http://jsbeautifier.org/に基づくコマンドラインビューティファイア は、rhino(javaベースのJSエンジン、パッケージ化)ではなくV8 javascriptエンジン(c ++コード)に基づいているため、使用が少し簡単になりました。 「js.jar」として)。したがって、rhinoの代わりにV8を使用できます。
使い方:
jsbeautifier.orgのzipファイルをhttp://github.com/einars/js-beautify/zipball/masterからダウンロードし ます。
(これはhttp://download.github.com/einars-js-beautify-10384df.zipなどのzipファイルにリンクされたダウンロードURLです)
古い(機能しなくなった、jarファイルがなくなった)
java -jar js.jar name-of-script.js
新しい(代替)
svnからv8 libをインストール/コンパイルします。上記のzipファイルのv8 / README.txtを参照してください
./jsbeautify somefile.js
-rhinoバージョンとは少し異なるコマンドラインオプションがあります。
-「外部ツール」として構成されている場合、Eclipseでうまく機能します
nodejsを使用している場合は、uglify-jsを試してください
LinuxまたはMacでは、すでにnodejsがインストールされていると想定して、次のコマンドで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
は、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年6月7日更新
インストールは同じですが、uglify-jsのメンテナがバージョン2で動作しているようです。
uglifyjs -b
インデントを修正するだけでなく、コードを再配置して書き直します。それは私が欲しかったものではありません。Ubuntu 14.04で古いバージョンを使用していました。
uglifyjs -b
コードの並べ替えと書き換えの方法についてもう少し説明してください。
$ sudo apt install jsbeautifier
$ js-beautify ugly.js > beautiful.js
js-beautify -o file.js file.js
コンソールでは、でアーティスティックスタイル(別名AStyle)を使用できます--mode=java
。
それは素晴らしく機能し、無料のオープンソースでクロスプラットフォーム(Linux、Mac OS X、Windows)です。
承認された回答にコメントを追加できないため、そもそも存在すべきではないはずの投稿が表示されます。
基本的に、JavaコードにJavaScript美容ツールも必要でしたが、驚いたことに、私が見つけた限りでは利用できません。だから私は受け入れられた答えに完全に基づいて自分でコーディングしました(それはjsbeautifier.org beautifier .jsスクリプトをラップしますが、javaまたはコマンドラインから呼び出すことができます)。
コードはhttps://github.com/belgampaul/JsBeautifierにあります
rhinoとbeautifier.jsを使用しました
コンソールからの使用方法:java -jar jsbeautifier.jarスクリプトのインデント
例:java -jar jsbeautifier.jar "function ff(){return;}" 2
Javaコードからの使用法:public static String jsBeautify(String jsCode、int indentSize)
コードを拡張することを歓迎します。私の場合、インデントのみが必要だったので、開発中に生成されたJavaScriptを確認できました。
プロジェクトの時間を節約できることを願っています。
JavaScriptで実装されたコマンドラインJavaScript美化機能を5分以内に構築する方法を説明した記事を書きました。YMMV。
- 最新の安定したRhinoをダウンロードして、どこかに解凍します。例:〜/ dev / javascript / rhino
- 前述のjsbeautifier.orgから参照されているbeautify.jsをダウンロードして、どこかにコピーします。例:〜/ dev / javascript / bin / cli-beautifier.js
これをbeautify.jsの最後に追加します(JavaScriptにいくつかの追加のトップレベルプロパティを使用します)。
// 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 $*
(オプション)jsbeautifier.jsを含むフォルダーをPATHに追加するか、すでにそこにあるフォルダーに移動します。