ターミナルでJavaScriptスクリプトをどのように実行しますか?


272

たとえば、Pythonスクリプトを実行する場合は、python filename.pyと入力するか、Cプログラムを実行する場合は、ファイル名./ファイル名にします.jsファイルでこれをどのように行いますか?


1
JSは汎用言語ではないので、なぜこれを行いたいのですか?<script>タグを使用して.jsファイルを.htm(l)ページに含め、ブラウザでページを開きます。
ヘルパーメソッド

3
@BLUC実行可能ファイルと呼ばれます。
ヘルパーメソッド

実行可能ファイル、アプリケーション、プログラム、またはバイナリ。さらに役立つメモとして、V8やRhinoなどのJavaScriptインタープリター、または私が忘れている他の1000のインタープリターが必要になります。
コービン、2011

9
@OliverWeilerは、他のいくつかの言語ほど一般的な状況では簡単に適用できませんが、Webページ以外のアプリケーションで使用できると思います:)
コービン2011

JavaScriptのアプリケーションはUnity 3Dにあります
Bradman175

回答:


123

スクリプトを評価するには、JavaScriptエンジン(MozillaのRhinoなど)が必要です。Pythonの場合とまったく同じですが、後者には標準ディストリビューションが付属しています。

Rhino(または代替)がインストールされていてパス上にある場合、JSの実行は確かに次のように簡単です。

> rhino filename.js

JavaScriptはそれ自体が単なる言語ですが、多くの特定のスクリプトはブラウザのような環境で実行されると想定しているためlocation.href、などのグローバル変数にアクセスし、追加して出力を作成することに注意してください。を呼び出すのではなく、DOMオブジェクトprint

Webページ用に作成されたスクリプトを手に入れている場合は、標準入力からの引数を受け入れて標準出力に書き込むことができるように、多少折り返すか変更する必要がある場合があります。(Rhinoには、標準のブラウザーグローバル変数をエミュレートするモードがあると思いますが、これについてのドキュメントは今のところ見つかりません。)


4
参考までに、rhinoとspidermonkeyの違い(どちらもMozillaで作成):stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Kelvin

3
Debian / Ubuntuの場合:「apt-get install rhino」とバイナリはjsと呼ばれます。
pevik 2013

あなたが同じことを感じるかどうかは知りませんが、私は(Ubuntuの14.04を実行している)...かなり壊れやすいとバギーrhyno見つけることだ
IonicăBizău

1
この作業は、console.log()を使用するよりも、print( "msg")を使用してデバッグします
Arefe

391

もう1つの答えはNodeJSです。

Node.jsはChromeのJavaScriptランタイム上に構築されたプラットフォームであり、高速でスケーラブルなネットワークアプリケーションを簡単に構築できます。Node.jsは、イベント駆動型のノンブロッキングI / Oモデルを使用して、軽量で効率的な、分散型デバイス間で実行されるデータ集約型のリアルタイムアプリケーションに最適です。

ターミナルを使用すると、nodeコマンドを使用して開始できます。

$ node
> 2 + 4
6
> 

:終了する場合は、次のように入力します

.exit

次のようなJavaScriptファイルを実行することもできます。

node file.js

«今すぐインストール»


@NadirSampaoliはい、それはそれが本当に素晴らしい新しいテクノロジーです!
IonicăBizău

唯一の欠点(それを呼び出したい場合)は、ノードが常に「厳密モード」にあることです。それが正しいか?
Nadir Sampaoli 2013

@NadirSampaoliうーん、わかりません。:この質問を参照してくださいstackoverflow.com/q/9031888/1420197
IonicăBizău

10
@NadirSampaoli私はそれが「マイナス面」として数えることを疑います。厳格モードは誰にとっても優れています。
常磁性クロワッサン2014

JavaScriptを最終的な「消費者」コマンドにラップすることについてのアドバイスは、ユーザーが気にする必要はありませんか?同様に$> sudo apt-get install myFancyCmd続きますか$>myFancyCmd hello.jpg -w 1234
Frank Nocke 16年

133

Macを使用している場合は、jscOS X(ターミナル)で次のように入力してJavaScriptコンソールを取得できます。

/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Resources/jsc

Terminal.app

次のように、jscの引数としてその名前を追加して、.jsスクリプトの1つを実行することもできます。

jsc your_awesome_script_name.js

注意:私はconsole.log()開発中に使用しますが、jscはdebug()代わりに関数を必要とします。

Ubuntuのあなたはいくつかの素晴らしい持っているのECMAScriptの殻をあなたの処分で。それらの間で、SpiderMonkeyについて言及することは価値があります。あなたはそれを追加することができますsudo apt-get install spidermonkey

上のWindowsの他の人々は、あなたが頼ることができる言ったようにcscriptしてwscript直接OS上に構築されました。

私はまた、問題に別の:) 考え方を追加します。時間があって新しいことを学びたい場合は、独自のコンパイラ/コンソールを備え、非常に正確なJavascriptを提供するcoffee-scriptについて言及したいと思います。あなたはあなたのブラウザでもそれを試すことができます(リンク "try coffeescript")。


Ubuntuは10.04以降、SpiderMonkeyをサポートしていません。(理由を知っていますか?askubuntu.com/q/180572/482285
maciek

1
@maciek SpiderMonkeyはUbuntuでも引き続き使用できますが、別の名前で提供されています
。packages.ubuntu.com/ trusty / libmozjs

1
@maciek ...そうすることができます:sudo apt-get install libmozjs-24-binそして、シェルsudo ln -sf /usr/bin/js24 /usr/bin/jsjsを使用するために使用します。
microspino

ちなみに、Ubuntuにインストールされconsole.logているノードで正常に動作しsudo apt install nodejsます。以下のための完璧なconsole.log('hey world, here I am')あなたが実行できる、ちょっとアプリnode hey.js
Nagev

30

そのためにnode.jsを使用します。ここでは、mac nodeを使用brewしてインストールする方法の例を示します。

brew update && install node

次にnode filename.js、と入力してプログラムを実行するとconsole.log()、出力に使用できます。


これはgithub.com/remy/nodemonと組み合わせて使用すると、javascriptファイルを監視し、変更時に再実行できます。したがって、nodemon yourjavascript.jsで実行するだけです
Denis

4
どういう意味brew install nodeですか?install nodeそれ自体は実際には何もしません。
numbermaniac

11

粗雑ですが、ChromeでJavaScriptコンソールを開き(Ctrl + Shift + J)、*。jsファイルのテキストコンテンツを貼り付けてEnterキーを押すことができます。


4
実はそんなに大雑把ではなく、誰も話さなかったのには驚きましたconsole
Eduard Florinescu 2014

11

MacBookを使用している場合。

  1. セットアップnode.jsお使いのシステムにして、端末を開きます
  2. jsファイルが保存されているディレクトリに移動します。
  3. 実行を実行するには node <filename.js>

例、ファイル名がscript.js実行された場合node script.js


1
ノードはjavascriptに近いですが、正確にはjavascriptではありません。たとえば、javascriptはファイルIOをサポートしていないため、デフォルトでrequire関数も存在します。それはjavascriptファイルをテストする良い方法ではないかもしれません
Weijing Jay Lin


4

Windows PCを使用している場合は、WScript.exeまたはCScript.exeを使用できます。

ブラウザ環境ではないので、などのオブジェクトdocument.writewindowオブジェクトに依存するものは機能しないことに注意してくださいwindow.alert。代わりに、呼び出しWScript.Echoてプロンプトに出力することができます。

http://msdn.microsoft.com/en-us/library/9bbdkx3k(VS.85).aspx


Ubuntu、Google Chrome用のものはありますか?
BLUC、2011

あなたはその重要な情報の一部を問題に入れるべきだった。すみません、私はWindowsオタクです。Ubuntuについてはあまり知りません。さらに、UbuntuシェルプロンプトからJavaScriptを実行しているときは、おそらくGoogle Chromeにアクセスできません。編集:Andrzej Doyleの答えはあなたのために行く方法です。
Anders Tornblad、2011

4

私もそれを調べてみましたが、代わりに、Remy Sharpによるjsconsole.comを使用しました(彼はjsbin.comも作成しました)。私はUbuntu 12.10で実行しているため、特別なアイコン作成する必要がありましたが、WindowsでChromeを使用している場合は、[ツール]> [アプリケーションショートカットの作成]に移動します(これはうまく機能しないか、私の場合はまったく機能しません)。 Ubuntuで)。このサイトはMac jscコンソールと非常によく似ています。実際には、URLからライブラリやコードをロードするなど、いくつかの優れた機能も備えていると思いますjsc

お役に立てれば。



2

すべての答えは、上記の私が行方不明一つのことを確認し、実行していると考えられる、素晴らしいですjavascripts(*.js)ファイル、無関係の弟。javascriptJava

JDKを実行するために利用できる2つの便利なツールが付属していjavascriptsます。コマンドは次のようになります。に移動してくださいJDK\bin

 jjs example.js

そのcommmandように行く別のツールが出てきます-

 jrunscript example.js

これが他の人に役立つことを願っています。


1

これは「迂回」ソリューションですが、ipythonを使用できます

ターミナルからipythonノートブックを起動します。

$ ipython notebook

JavaScriptを実行できるブラウザで開きます

ここに画像の説明を入力してください


0

また、使用することができますphantomjsから(私の場合は最大OSXである)システムに応じてダウンロードphantomjsをphantomjs.org あなたのjavascriptファイルの先頭にphantomjsインストールフォルダへのパスを置く必要があります。あなた。例えば。#!./bin/phantomjsコードを保存します。JavaScriptが保存されているターミナルに移動し、次を使用して実行できます> phantomjs filename.js


0

技術的には、Document Object Model(DOM)がないため、Node.jsは私たちが知っているように適切なJavaScriptではありません。たとえば、ブラウザで実行されるJavaScriptスクリプトは機能しません。全然。解決策は、ヘッドレスブラウザでJavaScriptを実行することです。幸いなことに、まだアクティブなプロジェクトがあります。MozillaFirefoxにはヘッドレスモードがあります

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode

$ /Applications/Firefox.app/Contents/MacOS/firefox -headless index.html
*** You are running in headless mode.

0

bash経由でjsファイルを実行するために必要なことは、次のように入力するだけです。 $ node filename.js

これは、Pythonの場合と似ています。 $ python filename.py

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