[解決済み] コマンドラインを使ってJavaScriptのコードを美しくする方法は?
質問
JavaScriptのコードを美化するためのバッチスクリプトを書いています。このスクリプトは Windows と リナックス .
コマンドラインツールを使用して JavaScript コードを美化するにはどうすればよいですか?
どのように解決するのですか?
まず、JavascriptベースのPretty Print/Beautifierの中から好きなものを選びます。 私は、以下のものを好みます。 http://jsbeautifier.org/ というのは、私が最初に見つけたのがこれだったからです。 そのファイルをダウンロードする https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
次に、The 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を知っていれば、テキストストリームでこれを実行することはそれほど難しくないでしょう。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] npxとnpmの違い?
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] JSHintの'+'前の改行不良の説明
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする