ブラウザなしでJavaScriptを実行しますか?


129

ブラウザなしで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はJavaScriptコマンドラインインタープリターです。
ネイサン

5
node.jsはインタープリターではなく、GoogleのV8 JavaScript実装に基づいて構築された非同期フレームワークです。私はV8のJavaScript intererpterは、ノードのインストールに含まれていると考えているんが

1
V8のCLIインタープリターが普及した場合、それは本当に優れた教育ツールになる可能性があります。JavaScriptでプログラミングを学ぶのは、かなり楽しいかもしれません。Luaは正直なところ最良の選択かもしれませんが(JSの "クラス"は誰からも地獄を混乱させます)、JSがWebに投げられる能力は、いじくり回す人にとって魅力的です。私はこのV8 CLIを自分で試すことができます。
jasonmp85 2010年

@ jasonmp85新しいキーワードで関数を実行すると、オブジェクトインスタンスが作成されます。インスタンスでプロパティ/メソッドを参照するときに、オブジェクト自体にそれがない場合は、コンストラクター関数のプロトタイププロパティがチェックされます。これをパブリックメソッドに使用し、コンストラクター関数にローカルな変数を定義して、プライベートメソッド/プロパティを効果的に取得します(これらは技術的にクロージャーで参照される変数です)。終わり。
エリック・レッペン、

回答:


46

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

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

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

node.jsに興味があるようで、V8に基づいているので、JavaScriptプログラミングの一貫した基盤を持つことができるように、V8環境を設定するための手順に従うのが最善の場合があります(JSCとV8がほとんど同じですが、わかりません)。


Chrome / Google V8インタープリターリンクはまさに​​私が探していたものです!ありがとうございました!
ダニエル

2
0.1.101のNodeJSには、環境へのCLIアクセスを提供するnode-replがあります。JSのテスト/学習に最適です。
Cyber​​Fonic 2010

Ubuntuのnodejs v0.10.25ではnodejs、ターミナルに入力するとREPLにアクセスできます。
ИванБишевац

上記のうち、HTML DOMが含まれている場合はどれですか?
Old Geezer、2016年

57

主な回答

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

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

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

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

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

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

したがって、ほとんどコンパイルしないと、3つのヘビーウェイトJavaScriptエンジンを自由に使用できます。

補遺

物をインストールしたら、#!/usr/bin/jsshebang行でファイルを作成するだけで、物事はうまくいきます。

$ 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!
$

23

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

node somefile.js

バッシュで動作します。


ああ、神様!@ aw04絶対に
theapache64

私にとってはnodejs somefile.js、nodejsパッケージをインストールしてからです
user2490003

これは2019年の正解です。Node.JSは、常に最もユビキタスで最も簡単な方法です。
wilsonhobbs

10

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

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

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

この質問を見ることができます: cscript.exeからより高性能なIE9 Javascriptエンジンを呼び出す方法を学ぶには、IE9のJavascriptエンジン(コード名は「Chakra」)のProgIdまたはCLSIDとは何ですか


8

誰も言及していないため:Java 1.6以降Java JDKにはJavaScriptコマンドラインとREPLもバンドルされています。

Rhinoに基づいていますhttps : //developer.mozilla.org/en/docs/Rhino

Java 1.6および1.7では、コマンドはjrunscriptjrunscript.exeWindowsでは)呼び出され、JDKのbinフォルダーにあります。

Java 1.8以降、新しいJavaScript実装がバンドルされています(Nashorn:https : //blogs.oracle.com/nashorn/

したがって、Java 1.8ではコマンドが呼び出されますjjsjjs.exeWindowsの場合)


6

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

node-repl

node.jsをインストールしたら、実際の動作を確認してください。rlwrapをインストールして正常に動作させることは、かなり標準的です。


Node-replとハッシュバンの両方を使用しているため、NodeJSでプログラムをすばやく動作させることができます。高速で使いやすいです。
Cyber​​Fonic 2010

3

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

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

java org.mozilla.javascript.tools.shell.Main my_javascript_code.js [args]


3

コマンドラインから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!' ]

空は限界です、そして次に進み続けてください。



2

この本当に気の利いたオープンソースECMAScript準拠のJSエンジンは完全にCで記述されており、duktapeと呼ばれています。

Duktapeは、移植性とコンパクトなフットプリントに重点を置いた、埋め込み可能なJavascriptエンジンです。

幸運を!



1

Linux、Windows、およびMacで利用可能なJSDBは、この要件にかなり適合するはずです。MozillaのSpidermonkey Javascriptエンジンを使用しており、node.jsに比べてインストールの手間が少ないようです(少なくとも最後に数年前にnode.jsを試したとき)。

JavaScriptシェルのこの興味深いリストからJSDBを見つけました:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.