Wie führt man ein JavaScript-Skript über das Terminal aus?


272

Wenn Sie beispielsweise ein Python-Skript ausführen würden, würden Sie python filename.py eingeben, oder wenn Sie ein C-Programm ausführen möchten , machen Sie filename dann ./ filename . Wie macht man das mit .js- Dateien?


1
JS ist keine Allzwecksprache. Warum sollten Sie dies tun? Fügen Sie Ihre .js-Datei über das <script> -Tag in eine .htm (l) -Seite ein und öffnen Sie die Seite in Ihrem Browser.
Hilfsmethode

3
@ BLUC Es heißt eine ausführbare Datei.
Hilfsmethode

ausführbare Datei, Anwendung, Programm oder Binärdatei. Und für eine hilfreichere Anmerkung benötigen Sie einen JavaScript-Interpreter wie V8 oder Rhino oder einen der anderen 1000, die ich vergesse.
Corbin

9
@OliverWeiler ist in allgemeinen Situationen nicht so einfach anwendbar wie in einigen anderen Sprachen, aber ich glaube, dass es Anwendungen außerhalb von Webseiten haben kann :).
Corbin

Eine Anwendung von JavaScript ist in Unity 3D
Bradman175

Antworten:


123

Sie benötigen eine JavaScript-Engine (wie Mozillas Rhino ), um das Skript auszuwerten - genau wie bei Python, obwohl letztere mit der Standarddistribution geliefert wird.

Wenn Sie Rhino (oder eine Alternative) installiert haben und sich auf Ihrem Pfad befinden, kann das Ausführen von JS in der Tat so einfach sein wie

> rhino filename.js

Es ist jedoch erwähnenswert, dass JavaScript zwar einfach eine eigenständige Sprache ist, viele bestimmte Skripte jedoch davon ausgehen, dass sie in einer browserähnlichen Umgebung ausgeführt werden. Versuchen Sie daher, auf globale Variablen wie z. B. zuzugreifen location.hrefund eine Ausgabe durch Anhängen zu erstellen DOM-Objekte anstatt aufzurufen print.

Wenn Sie ein Skript haben, das für eine Webseite geschrieben wurde, müssen Sie es möglicherweise umbrechen oder etwas ändern, damit es Argumente von stdin akzeptiert und in stdout schreibt. (Ich glaube, Rhino hat einen Modus zum Emulieren von globalen Standard-Browser-Vars, der sehr hilfreich ist, obwohl ich die Dokumente dafür derzeit nicht finden kann.)



3
Unter Debian / Ubuntu: 'apt-get install rhino' und binär heißt js.
Pevik

Ich weiß nicht, ob du das Gleiche fühlst, aber ich finde Rhyno ziemlich zerbrechlich und fehlerhaft ... (mit Ubuntu 14.04)
Ionică Bizău

1
Diese Arbeit für mich, verwenden Sie print ("msg") zum Debuggen als mit console.log ()
Arefe

391

Eine andere Antwort wäre der NodeJS!

Node.js ist eine Plattform, die auf der JavaScript-Laufzeit von Chrome basiert und zum einfachen Erstellen schneller, skalierbarer Netzwerkanwendungen geeignet ist. Node.js verwendet ein ereignisgesteuertes, nicht blockierendes E / A-Modell, das es leicht und effizient macht und sich perfekt für datenintensive Echtzeitanwendungen eignet, die auf verteilten Geräten ausgeführt werden.

Mit dem Terminal können Sie es mit dem nodeBefehl starten .

$ node
> 2 + 4
6
> 

Hinweis : Wenn Sie beenden möchten, geben Sie einfach ein

.exit

Sie können eine JavaScript-Datei auch wie folgt ausführen:

node file.js

«JETZT installieren»


@ NadirSampaoli Ja, es ist eine neue Technologie, die wirklich großartig ist!
Ionică Bizău

Der einzige Nachteil (wenn Sie es so nennen möchten) ist, dass sich der Knoten immer im "strengen Modus" befindet. Ist es richtig?
Nadir Sampaoli

@ NadirSampaoli Hmmm, ich bin mir nicht sicher. Siehe diese Frage: stackoverflow.com/q/9031888/1420197
Ionică Bizău

10
@ NadirSampaoli Ich bezweifle, dass es als "Nachteil" zählt. Der strenge Modus ist für alle besser.
Das paramagnetische Croissant

Irgendwelche Ratschläge zum Umschließen eines Javascript in den endgültigen "Consumer" -Befehl, um die sich der Benutzer nicht kümmern muss? Wie in $> sudo apt-get install myFancyCmdgefolgt von $>myFancyCmd hello.jpg -w 1234?
Frank Nocke

133

Wenn Sie einen Mac haben , können Sie jsceine Javascript-Konsole in OS X (Terminal) durch Eingabe erhalten

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

in Terminal.app .

Sie können auch eines Ihrer .js-Skripte ausführen, indem Sie seinen Namen wie folgt als Argument für jsc hinzufügen:

jsc your_awesome_script_name.js

Hinweis : Ich benutze console.log()während der Entwicklung, aber jsc braucht diedebug() stattdessen Funktion.

Unter Ubuntu stehen Ihnen einige nette ECMAScript-Shells zur Verfügung. Zwischen ihnen ist SpiderMonkey zu erwähnen . Sie können es hinzufügen durchsudo apt-get install spidermonkey

Unter Windows können Sie sich, wie andere sagten , auf das Betriebssystem verlassen cscriptund wscriptdirekt darauf aufbauen.

Ich möchte hinzufügen , auch eine andere :) Weg , um das Problem zu denken , wenn Sie Zeit haben und wie neue Dinge zu lernen Ich mag würde erwähnen Kaffee-Skript , das seinen eigenen Compiler / console hat und gibt Ihnen super-korrekt Javascript aus. Sie können es auch in Ihrem Browser ausprobieren (Link "try coffeescript").


Ubuntu unterstützt SpiderMonkey seit 10.04 nicht mehr. (Wissen Sie warum? Askubuntu.com/q/180572/482285 )
Maciek

1
@maciek SpiderMonkey ist immer noch für Ubuntu verfügbar, aber unter einem anderen Namen: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino

1
@maciek ... so können Sie tun: sudo apt-get install libmozjs-24-binund die Verwendung sudo ln -sf /usr/bin/js24 /usr/bin/js, um es mit js in Ihrer Shell zu verwenden.
Microspino

Funktioniert übrigens console.loggut mit Node , der unter Ubuntu mit installiert ist sudo apt install nodejs. Perfekt für eine Art console.log('hey world, here I am')App, mit der Sie arbeiten können node hey.js.
Nagev

30

Verwenden node.js für das, hier ist beispielsweise , wie zu installieren , nodeindem Sie brewauf dem Mac:

brew update && install node

Führen Sie dann Ihr Programm durch Eingabe aus node filename.js, und Sie können es console.log()für die Ausgabe verwenden.


Dies funktioniert hervorragend in Kombination mit github.com/remy/nodemon , das jede Javascript-Datei überwacht und bei jeder Änderung erneut ausführt. Führen Sie es einfach mit nodemon yourjavascript.js
Denis

4
Meinst du nicht brew install node? install nodeallein wird eigentlich nichts tun.
Numbermaniac

11

Es ist grob, aber Sie können die Javascript-Konsole in Chrome öffnen (Strg + Umschalt + J), den Textinhalt der * .js-Datei einfügen und die Eingabetaste drücken.


4
Eigentlich ist es nicht so grob, und ich war erstaunt, dass niemand darüber sprach console.
Eduard Florinescu

11

Wenn Sie ein MacBook verwenden.

  1. Konfiguration node.js in Ihrem System ein und öffnen Sie das Terminal
  2. Navigieren Sie zu dem Verzeichnis, in dem die js-Datei gespeichert ist.
  3. Run ausführen node <filename.js>

Wenn beispielsweise Dateiname wird script.jsausgeführtnode script.js


1
Der Knoten befindet sich in der Nähe von Javascript, ist jedoch nicht genau Javascript. Beispielsweise unterstützt Javascript die Datei-E / A nicht. Standardmäßig ist auch eine Funktion erforderlich. Es ist möglicherweise kein guter Weg, um Javascript-Datei zu testen
Weijing Jay Lin


4

Wenn Sie sich auf einem Windows-PC befinden, können Sie WScript.exe oder CScript.exe verwenden

Denken Sie nur daran, dass Sie sich nicht in einer Browser-Umgebung befinden, sodass Dinge wie document.writeoder alles, was auf dem windowObjekt beruht , nicht funktionieren window.alert. Stattdessen können Sie aufrufen, WScript.Echoum Inhalte an die Eingabeaufforderung auszugeben.

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


Gibt es eine für Ubuntu, Google Chrome?
BLUC

Sie sollten diese wichtigen Informationen in die Frage aufgenommen haben. Entschuldigung, ich bin ein Windows-Geek - ich weiß nicht viel über Ubuntu. Außerdem haben Sie wahrscheinlich keinen Zugriff auf Google Chrome, wenn Sie Javascript über eine Ubuntu-Shell-Eingabeaufforderung ausführen. EDIT: Andrzej Doyles Antwort ist der richtige Weg für Sie.
Anders Tornblad

4

Ich habe auch versucht, das zu untersuchen, aber stattdessen habe ich jsconsole.com von Remy Sharp verwendet (er hat auch jsbin.com erstellt). Ich verwende Ubuntu 12.10, daher musste ich ein spezielles Symbol erstellen. Wenn Sie jedoch Windows verwenden und Chrome verwenden, gehen Sie einfach zu Extras> Anwendungsverknüpfungen erstellen (beachten Sie, dass dies nicht sehr gut funktioniert oder in meinem Fall überhaupt nicht). auf Ubuntu). Diese Seite funktioniert sehr ähnlich wie die Mac- jscKonsole: Tatsächlich hat sie auch einige coole Funktionen (wie das Laden von Bibliotheken / Code von einer URL), die ich denke jscnicht.

Hoffe das hilft.



2

Alle Antworten oben sind groß, ich sehe ein , was fehlt , und könnte für den Betrieb in Betracht gezogen werden javascripts(*.js)Dateien, die in keinem Zusammenhang Bruder von javascriptder Java.

JDKkommt mit zwei netten Werkzeugen, die für die Ausführung verwendet werden könnten javascripts. Hier geht der Befehl wie. Stellen Sie sicher, dass Sie zu navigieren JDK\bin.

 jjs example.js

Es kommt mit einem anderen commmandWerkzeug, das so geht-

 jrunscript example.js

Ich hoffe, dass dies für andere hilfreich sein kann.


1

Dies ist eine "Kreisverkehr" -Lösung, aber Sie könnten Ipython verwenden

Starten Sie ipython notebook vom Terminal aus:

$ ipython notebook

Es wird in einem Browser geöffnet, in dem Sie das Javascript ausführen können

Geben Sie hier die Bildbeschreibung ein


0

Sie können auch phantomjsDownload phantomjs je nach System (mein Fall ist Max OSX) von phantomjs.org verwenden. Sie sollten den Pfad zum Installationsordner von phantomjs oben in Ihrer Javascript-Datei einfügen. z.B. #!./bin/phantomjsSpeichern Sie Ihren Code. Gehen Sie zu dem Terminal, in dem Ihr Javascript gespeichert ist und das Sie mit ausführen können> phantomjs filename.js


0

Technisch gesehen ist Node.js kein richtiges JavaScript, wie wir es kennen, da es kein Document Object Model (DOM) gibt . Beispielsweise funktionieren JavaScript-Skripte, die im Browser ausgeführt werden, nicht. Überhaupt. Die Lösung wäre, JavaScript mit einem kopflosen Browser auszuführen. Zum Glück ist noch ein Projekt aktiv: Mozilla Firefox hat einen Headless-Modus .

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

Alles was Sie tun müssen, um eine js-Datei über bash auszuführen, ist Typ: $ node filename.js

Dies ist ähnlich wie in Python, wenn Sie Folgendes tun: $ python filename.py

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.