ブラウザなしのJavascriptプログラミングを検討しています。他のスクリプト言語(Ruby、php、Perl、python ...)を実行するのと同じように、LinuxまたはMac OS Xコマンドラインからスクリプトを実行したい
$ javascript my_javascript_code.js
クモザル(Mozilla)とv8(Google)を調べましたが、どちらも埋め込まれているようです。
コマンドラインから実行されるスクリプト言語としてJavascriptを使用している人はいますか?
誰かが私がこれを調べている理由に興味があるなら、私は node.js をいじっていました。 node.jsのパフォーマンスから、javascriptが大きなデータを処理するための実行可能なスクリプト言語であるのではないかと思われます。
私はこれを見つけました 関連する質問 トピックについてですが、直接リンクが必要な場合、ここにあります:
Node.jsにはシェルが付属していないことに驚いていますが、実際にはepoll/selectorベースのコールバック/イベント指向のWebサーバーに近いため、完全なJS機能セットは必要ありませんが、その内部の仕組みにあまり慣れていない。
Node.jsに興味があるようで、V8に基づいているため、JavaScriptプログラミングの一貫した基盤を確保できるように、V8環境のセットアップに関する指示に従うことをお勧めします(JSCとV8のほとんどが同じですが、わかりません)。
はい、あなたの質問に答えるために、ブラウザなしでコマンドラインからJavaScriptを「通常の」スクリプト言語として使用することができます。他の人はまだ言及していないので、言及する価値があると思います。
Debianベースのシステム(少なくともUbuntu、Linux Mint、aptosid/siduxを含む)では、Rhinoをインストールするオプションや既に言及した他のオプションに加えて、他のオプションがあります:
libmozjs-24-bin
パッケージをインストールします。これにより、コマンドラインでMozillaのSpidermonkeyエンジンが単純なjs24
として提供され、インタラクティブなインタープリターとしても使用できます。 (名前の24
は、Firefoxのバージョン24に対応することを意味します)。
libv8-dev
パッケージをインストールします。これにより、GoogleのV8エンジンが提供されます。その例の1つとして、/usr/share/doc/libv8-dev/examples/Shell.cc.gz
ファイルがあります。このファイルは、非常に簡単に解凍およびコンパイルできます(例:g++ -Os Shell.cc -o Shell -lv8
)。
パッケージ nodejs
をインストールすると、nodejs
実行可能ファイルを提供する実行可能ファイルjs
と alternative (Debianセンスで)の両方として使用可能になります。 JITコンパイルは、V8の好意により提供されています。
パッケージ libjavascriptcoregtk-3.0-bin
をインストールし、コマンドラインからWebKitのJavaScriptCoreインタープリター(jsc
)を通常のインタープリターとして使用します。そして、これはMacにアクセスする必要はありません。多くのプラットフォーム(x86やx86_64など)では、このインタープリターにはJITコンパイラーが付属します。
そのため、ほとんどコンパイルを行わずに、3つのヘビーウェイトJavaScriptエンジンを自由に使用できます。
インストールしたら、#!/usr/bin/js
Shebang行を使用してファイルを作成するだけで、動作します:
$ cat foo.js
#!/usr/bin/js
console.log("Hello, world!");
$ ls -lAF /usr/bin/js /etc/alternatives/js /usr/bin/nodejs
lrwxrwxrwx 1 root root 15 Jul 16 04:26 /etc/alternatives/js -> /usr/bin/nodejs*
lrwxrwxrwx 1 root root 20 Jul 16 04:26 /usr/bin/js -> /etc/alternatives/js*
-rwxr-xr-x 1 root root 1422004 Apr 28 20:31 /usr/bin/nodejs*
$ chmod a+x foo.js
$ ./foo.js
Hello, world!
$ js ./foo.js
Hello, world!
$
Node.jsをiMacにインストールし、
node somefile.js
bashで動作します。
LinuxとMacについて尋ねたのは知っています。 Windowsに興味がある他の人があなたの質問を見つけた場合に備えて、Windowsの答えを提供します。
Windowsには、コマンドラインから使用できるJavascriptエンジンが含まれています。
Windows 98以降のすべてのバージョンのWindowsには、「 The Windows Script Host 」と呼ばれるものが含まれています。スクリプト「エンジン」をサポートするWindows標準の方法です。最初のリリース以来、WSHはMicrosoftのJavascriptバージョンであるJScriptをサポートしています。とりわけ、これは、Windowsコマンドラインから、*。jsファイルの名前を呼び出すだけで、JScriptエンジンで実行できることを意味します。 (wscript.exeまたはcscript.exeを使用)
この質問を見ることができます: IE9のJavascriptエンジン(コード名「Chakra」)のProgIdまたはCLSIDとは cscript.exeから高性能IE9 Javascriptエンジンを呼び出す方法を学習します。
誰も言及していないので:Java 1.6以降Java JDKにはJavaScriptコマンドラインとREPLがバンドルされています。
Rhinoに基づいています: https://developer.mozilla.org/en/docs/Rhino
Java 1.6および1.7では、コマンドはjrunscript
(Windowsではjrunscript.exe
)と呼ばれ、JDKのbinフォルダーにあります。
Java 1.8以降では、新しいJavaScript実装がバンドルされています(Nashorn: https://blogs.Oracle.com/nashorn/ )
Java 1.8では、コマンドはjjs
(Windowsではjjs.exe
)と呼ばれます
FWIW、node.jsにはシェルが付属しています。入力してみてください。
node-repl
node.jsをインストールしたら、実際の動作を確認してください。 rlwrapをインストールして正常に動作させるのはかなり標準です。
これは古いことは知っていますが、 Zombie.js も試してみてください。非常に高速でテストに理想的なヘッドレスブラウザ!
コマンドラインからUbuntu 12.10とjsを使用
Javaのインストールで利用可能です:
el@apollo:~/foo$ Java -version
Java version "1.6.0_27"
el@apollo:~/foo$ which js
/usr/bin/js
いくつかの例:
el@apollo:~/foo$ js
> 5
5
> console.log("hello");
hello
undefined
> var f = function(){ console.log("derp"); };
undefined
> f();
derp
> var mybool = new Boolean();
undefined
> mybool
{}
> mybool == true
false
> mybool == false
true
> var myobj = {};
undefined
> myobj.skipper = "on my mark, engage!"
'on my mark, engage!'
> myobj.skipper.split(" ");
[ 'on',
'my',
'mark,',
'engage!' ]
空は限界です。
Rhino をチェックアウトすることをお勧めします。
Rhinoシェルは、バッチモードでJavaScriptスクリプトを実行する方法を提供します。
Java org.mozilla.javascript.tools.Shell.Main my_javascript_code.js [args]
完全にCで記述された duktape と呼ばれるこの本当に気の利いたオープンソースECMAScript準拠のJSエンジンを見つけました。
Duktapeは埋め込み可能なJavascriptエンジンであり、移植性とコンパクトなフットプリントに重点を置いています。
幸運を!
PhantomJSではこれも可能です
JSDB 、Linux、Windows、およびMacで利用可能です。 MozillaのSpidermonkey Javascriptエンジンを使用し、node.jsに比べてインストールするのが面倒ではないようです(少なくとも、数年前にnode.jsを試しました)。
この興味深いJavascriptシェルのリストからJSDBを見つけました: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells
JavaScript as OSA は、appleScriptの代替としてJavaScriptを提供する拡張機能です。私は約10年前にそれを使用してきましたが、現在のOSバージョンでまだ動作しているかどうかわかりません