問題

JavaScriptコードを自動化するためにバッチスクリプトを作成しています。 WindowsとLinuxの両方で動作する必要があります。

コマンドラインツールを使用してJavaScriptコードを自動化するにはどうすればよいですか?

  ベストアンサー

まず、あなたのお気に入りの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ファイルをダウンロードし、すべてを抽出し、Javaクラスパスにjs.jarを配置します(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 を混在させてマッチさせることができます。

  同じタグがついた質問を見る

javascriptcommand-line-interfacepretty-printmultiplatform