135

ブラウザなしで Javascript プログラミングを検討しています。他のスクリプト言語 (ruby、php、perl、python...) を実行するのと同じように、Linux または Mac OS X コマンドラインからスクリプトを実行したい

$ javascript my_javascript_code.js

スパイダー モンキー (Mozilla) と v8 (Google) を調べましたが、どちらも埋め込まれているようです。

コマンドラインから実行するスクリプト言語として Javascript を使用している人はいますか?

なぜ私がこれを調べているのか知りたい人がいれば、私はnode.jsを調べてきました。node.js のパフォーマンスは、javascript が大きなデータを処理するための実行可能なスクリプト言語であるかどうか疑問に思います。

4

13 に答える 13

60

主な回答

はい、あなたの質問に答えるために、ブラウザなしで、コマンド ラインから JavaScript を「通常の」スクリプト言語として使用することができます。他の人はまだ言及していないので、言及する価値があると思います:

Debian ベースのシステム (これには、少なくとも Ubuntu、Linux Mint、および aptosid/sidux が含まれます) では、既に述べた Rhino やその他のインストールのオプションに加えて、他のオプションがあります。

  • このパッケージをインストールlibmozjs-24-binすると、Mozilla の Spidermonkey エンジンが単純な としてコマンド ラインに提供js24され、対話型インタープリターとしても使用できます。(24名前の は、Firefox のバージョン 24 に対応していることを意味します)。

  • libv8-devGoogle の V8 エンジンを提供するパッケージをインストールします。その例の 1 つとして、/usr/share/doc/libv8-dev/examples/shell.cc.gz非常に簡単に解凍してコンパイルできるファイルがあります (例: g++ -Os shell.cc -o shell -lv8)。

  • パッケージをインストールすると、実行可能ファイルとして、および実行可能ファイルを提供する代替(Debian の意味で) のnodejs両方として利用できるようになります。JIT コンパイルは、V8 の厚意により提供されています。nodejsjs

  • パッケージをインストールし、コマンドラインからlibjavascriptcoregtk-3.0-binWebKit の JavaScriptCore インタープリター ( jsc) を通常のインタープリターとして使用します。そして、これは Mac にアクセスする必要がありません。多くのプラットフォーム (x86 や x86_64 など) では、このインタープリターに JIT コンパイラーが付属しています。

そのため、コンパイルをほとんど行わなくても、3 つの重い JavaScript エンジンを自由に使用できます。

補遺

インストールが完了したら、#!/usr/bin/jsシバン行でファイルを作成するだけで機能します。

$ 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!
$
于 2012-02-12T01:00:24.223 に答える
47

トピックに関するこの関連する質問を見つけましたが、直接リンクが必要な場合は、次のとおりです。

  • 他の人が指摘したように、Rhinoをインストールできます。この投稿は、それを起動して実行する簡単な方法と、コマンドを簡単に呼び出すためのエイリアスの方法を示しています
  • Mac を使用している場合は、WebKit の JavaScript エンジンを呼び出す JavaScriptCore を使用できます。ここに投稿があります
  • Chome/Google の V8 インタープリターも使用できます。ここに指示があります
  • OSA としての JavaScript は、AppleScript を使用しているかのように (ひどい構文を使わずに) スクリプト可能な OS X アプリを (私の知る限り) 操作できるため、興味深いものです。

node.js にシェルが付属していないことに驚いていますが、実際には epoll/selector ベースのコールバック/イベント指向の Web サーバーに似ていると思います。そのため、完全な JS 機能セットは必要ないかもしれませんが、私はその内部の仕組みにあまり精通していません。

あなたは node.js に興味を持っているようで、V8 に基づいているため、JavaScript プログラミングの一貫した基盤を持てるように、V8 環境をセットアップするための指示に従うのが最善かもしれません (JSC と V8 がほとんど同じですが、よくわかりません)。

于 2010-05-31T05:12:59.253 に答える
23

Node.js を iMac にインストールしましたが、

node somefile.js

bashで動作します。

于 2012-10-01T09:38:06.913 に答える
13

Linux と Mac について質問されたことは知っています。Windows に興味のある他の人があなたの質問を見つけた場合に備えて、Windows に関する回答を提供します。

Windows には、コマンド ラインから使用できる Javascript エンジンが含まれています。

Windows 98 以降のすべてのバージョンの Windows には、「Windows Script Host」と呼ばれるものが含まれています。これは、スクリプト「エンジン」をサポートする Windows 標準の方法です。最初のリリース以来、WSH は Microsoft のバージョンの Javascript である JScript をサポートしています。特に、これは、Windows コマンド ラインから任意の *.js ファイルの名前を呼び出すだけで、JScript エンジンで実行されることを意味します。(wscript.exe または cscript.exe 経由)

cscript.exeからより高性能な IE9 Javascript エンジンを呼び出す方法については、「IE9 の Javascript エンジン (コードネーム "Chakra") の ProgId または CLSID とは」という質問をご覧ください 。

于 2011-09-15T16:24:59.907 に答える
6

FWIW、node.jsにはシェルが付属しています。次のように入力してみてください。

node-repl

node.js をインストールしたら、動作を確認します。うまく動作させるためにrlwrapをインストールするのはかなり標準的です。

于 2010-05-31T05:38:35.570 に答える
3

これが古いことはわかっていますが、Zombie.jsも試してみてください。非常に高速で、テストに最適なヘッドレス ブラウザです。

于 2011-04-23T08:07:19.027 に答える
3

Rhinoをチェックしてみてください。

Rhino Shell は、バッチ モードで JavaScript スクリプトを実行する方法を提供します。

java org.mozilla.javascript.tools.shell.Main my_javascript_code.js [args]
于 2010-05-31T04:52:22.743 に答える
2

PhantomJS を使用すると、これを行うこともできます

http://phantomjs.org/

于 2014-08-07T18:13:24.877 に答える
1

OSA としての JavaScriptがあります。これは、appleScript の代替として JavaScript を提供する拡張機能です。10年ほど前から使っていますが、現在のOSバージョンでまだ動作しているかどうかはわかりません

于 2010-05-31T04:55:02.580 に答える