Jak uruchamiać skrypt JavaScript w terminalu?

272

Na przykład, jeśli były, aby uruchomić skrypt Pythona należy wpisać python filename.py lub jeśli chcesz uruchomić program C make pliku następnie ./ pliku . Jak to zrobić z plikami .js ?

BLUC
źródło
1
JS nie jest językiem ogólnego przeznaczenia, więc dlaczego chcesz to zrobić? Dołącz plik .js do strony .htm (l) za pomocą znacznika <script>, a następnie otwórz stronę w przeglądarce.
helpermethod
3
@BLUC Nazywa się to plikiem wykonywalnym.
helpermethod
plik wykonywalny, aplikacja, program lub plik binarny. Bardziej pomocna uwaga będzie wymagała interpretera JavaScript, takiego jak V8 lub Rhino, lub jednego z 1000 innych, o których zapominam.
Corbin,
9
@OliverWeiler nie jest tak łatwo stosowany w ogólnych sytuacjach, jak niektóre inne języki, ale wierzę, że może mieć swoje aplikacje poza stronami internetowymi :).
Corbin,
Aplikacja JavaScript jest w Unity 3D
Bradman175

Odpowiedzi:

123

Potrzebny byłby silnik JavaScript (taki jak Rhino Mozilli ) do oceny skryptu - dokładnie tak samo jak w przypadku Pythona, chociaż ten ostatni jest dostarczany ze standardową dystrybucją.

Jeśli masz zainstalowaną Rhino (lub alternatywną) na swojej drodze, uruchomienie JS może być tak proste

> rhino filename.js

Warto jednak zauważyć, że podczas gdy JavaScript jest po prostu językiem samym w sobie, wiele konkretnych skryptów zakłada, że ​​będą one działać w środowisku podobnym do przeglądarki - dlatego spróbuj uzyskać dostęp do zmiennych globalnych, takich jak location.hrefi utworzyć dane wyjściowe poprzez dołączenie Obiekty DOM zamiast wywoływać print.

Jeśli masz skrypt, który został napisany dla strony internetowej, być może będziesz musiał go nieco zawinąć lub zmodyfikować, aby umożliwić mu przyjmowanie argumentów ze standardowego wejścia i pisanie na standardowe wyjście. (Wierzę, że Rhino ma tryb emulacji standardowych globalnych zmiennych przeglądarki, co bardzo pomaga, chociaż nie mogę teraz znaleźć dokumentów na ten temat).

Andrzej Doyle
źródło
4
FYI, różnica między nosorożcem a spidermonkey (oba są dziełami Mozilli): stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Kelvin
3
W systemie Debian / Ubuntu: „apt-get install rhino” i plik binarny nazywa się js.
pevik
Nie wiem, czy czujesz to samo, ale uważam, że Rhyno jest dość delikatne i buggy ... (z systemem Ubuntu 14.04)
Ionică Bizău,
1
Ta praca dla mnie, użyj print ("msg") do debugowania niż używając console.log ()
Arefe
391

Inną odpowiedzią byłoby NodeJS!

Node.js to platforma zbudowana w środowisku uruchomieniowym JavaScript JavaScript do łatwego tworzenia szybkich, skalowalnych aplikacji sieciowych. Node.js wykorzystuje oparty na zdarzeniach, nieblokujący model I / O, co czyni go lekkim i wydajnym, idealnym do aplikacji intensywnie przetwarzających dane w czasie rzeczywistym, działających na rozproszonych urządzeniach.

Za pomocą terminala będziesz mógł uruchomić go za pomocą nodepolecenia.

$ node
> 2 + 4
6
> 

Uwaga : Jeśli chcesz wyjść, po prostu wpisz

.exit

Możesz również uruchomić plik JavaScript w następujący sposób:

node file.js

«Zainstaluj teraz»

Ionică Bizău
źródło
@NadirSampaoli Tak, to nowa technologia, która jest naprawdę świetna!
Ionică Bizău,
Jedynym minusem (jeśli chcesz to tak nazwać) jest to, że węzeł jest zawsze w „trybie ścisłym”. Czy to jest poprawne?
Nadir Sampaoli,
@NadirSampaoli Hmmm, nie jestem pewien. Zobacz to pytanie: stackoverflow.com/q/9031888/1420197
Ionică Bizău
10
@NadirSampaoli Wątpię, czy liczy się to jako „minus”. Tryb ścisły jest lepszy dla wszystkich.
Paramagnetyczny rogalik
Wszelkie porady dotyczące zawijania javascript do ostatecznego polecenia „konsumenta”, użytkownik nie musi się tym przejmować? Jak w $> sudo apt-get install myFancyCmdnastępnej $>myFancyCmd hello.jpg -w 1234?
Frank Nocke,
133

Jeśli masz komputer Mac , możesz uzyskać jsckonsolę javascript w systemie OS X (Terminal), pisząc

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

w Terminal.app .

Możesz także uruchomić jeden ze swoich skryptów .js, dodając jego nazwę jako argument dla jsc, w następujący sposób:

jsc your_awesome_script_name.js

Uwaga : używam console.log()podczas programowania, ale jsc potrzebujedebug() zamiast tego funkcji.

Na Ubuntu masz do dyspozycji ładne powłoki ECMAScript . Między nimi warto wspomnieć SpiderMonkey . Możesz dodać to przezsudo apt-get install spidermonkey

W systemie Windows, tak jak inni ludzie mówili, możesz polegać cscripti wscriptbezpośrednio wbudować w system operacyjny.

Dodałbym również inny sposób myślenia o problemie , jeśli masz czas i chcesz się nauczyć nowych rzeczy, chciałbym wspomnieć o skrypcie do kawy, który ma swój własny kompilator / konsolę i daje super-poprawne JavaScript. Możesz spróbować również w przeglądarce (link „wypróbuj coffeescript”).

microspino
źródło
Ubuntu nie obsługuje SpiderMonkey od 10.04. (Czy wiesz dlaczego? Askubuntu.com/q/180572/482285 )
maciek
1
@maciek SpiderMonkey jest nadal dostępny dla Ubuntu, ale pod inną nazwą: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino
1
@maciek ... więc możesz to zrobić: sudo apt-get install libmozjs-24-bini sudo ln -sf /usr/bin/js24 /usr/bin/jsużycie go z js w twojej powłoce.
microspino,
Nawiasem mówiąc, console.logdziała dobrze z węzłem , zainstalowany na Ubuntu z sudo apt install nodejs. Idealny do console.log('hey world, here I am')aplikacji, z którą można uruchomić node hey.js.
Nagev
30

Zastosowanie node.js za to, oto przykład jak zainstalować nodeza pomocą brewMac:

brew update && install node

Następnie uruchom swój program, pisząc node filename.js, i możesz użyć console.log()do wyjścia.

Andrey Bodoev
źródło
Działa to świetnie w połączeniu z github.com/remy/nodemon, który obejrzy dowolny plik javascript i uruchom go ponownie przy każdej zmianie. Więc po prostu uruchom go z nodemon yourjavascript.js
Denis
4
Nie masz na myśli brew install node? install nodesam w sobie nic nie zrobi.
numbermaniac
11

Jest to prymitywne, ale możesz otworzyć konsolę JavaScript w Chrome (Ctrl + Shift + J) i wkleić zawartość tekstową pliku * .js i nacisnąć Enter.

Mark Lakata
źródło
4
W rzeczywistości nie jest tak prymitywny i byłem zdumiony, że nikt nie mówił console.
Eduard Florinescu,
11

Jeśli używasz MacBooka.

  1. Skonfiguruj node.jsw swoim systemie i otwórz terminal
  2. Przejdź do katalogu, w którym zapisany jest plik js.
  3. Aby uruchomić bieg node <filename.js>

przykład, jeśli nazwa pliku jest script.jsuruchomionanode script.js

Emjey
źródło
1
węzeł jest bliski javascript, ale nie jest to dokładnie javascript, np. javascript nie obsługuje IO pliku, domyślnie jest też wymagana funkcja; może to nie być dobry sposób na przetestowanie pliku javascript
Weijing Jay Lin
5

Alternatywnie, jeśli chcesz po prostu bawić się z Javascriptem, fajną opcją przeglądarki jest JavaScript Lab firmy Codecademy .

Mają także IDE w języku Python i Ruby.

fscof
źródło
4

Jeśli korzystasz z komputera z systemem Windows, możesz użyć WScript.exe lub CScript.exe

Pamiętaj tylko, że nie jesteś w środowisku przeglądarki, więc rzeczy takie jak document.writecokolwiek lub zależne od windowobiektu nie będą działać window.alert. Zamiast tego możesz zadzwonićWScript.Echo aby wypisać dane do monitu.

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

Anders Tornblad
źródło
Czy jest taki dla Ubuntu, Google Chrome?
BLUC,
Powinieneś umieścić tę istotną informację w pytaniu. Przepraszam, jestem maniakiem Windows - niewiele wiem o Ubuntu. Poza tym prawdopodobnie nie będziesz mieć dostępu do Google Chrome podczas uruchamiania javascript z monitu powłoki Ubuntu. EDYCJA: Odpowiedź Andrzeja Doyle'a jest drogą do ciebie.
Anders Tornblad,
4

Próbowałem też to zbadać, ale zamiast tego skończyłem na jsconsole.com Remy'ego Sharpa (on również stworzył jsbin.com). Korzystam z systemu Ubuntu 12.10, więc musiałem utworzyć specjalną ikonę, ale jeśli korzystasz z systemu Windows i korzystasz z Chrome, po prostu przejdź do Narzędzia> Utwórz skróty do aplikacji (pamiętaj, że to nie działa zbyt dobrze lub w moim przypadku, na Ubuntu). Ta strona działa bardzo podobnie do jsckonsoli Mac : w rzeczywistości ma też kilka fajnych funkcji (jak ładowanie bibliotek / kodu z adresu URL), które, jak sądzę jsc, nie działają.

Mam nadzieję że to pomoże.

raf
źródło
3

Na Ubuntu zainstaluj libjavascriptcoregtk-3.0-bin i użyj ( manpage ).link do instalacji /usr/bin/jsc

Keith Cascio
źródło
Prostsze Ubuntu 14 sudo apt-get install nodejs; /usr/bin/nodejs foo.js. Pamiętaj, że jest to wersja v.10.10.25, trochę stara.
Camille Goudeseune
2

Wszystkie powyższe odpowiedzi są świetne, widzę jedną rzecz brakuje i mogą być uznane za systemem javascripts(*.js)plików, niezwiązane brat .javascriptJava

JDKma dwa fajne narzędzia, które można wykorzystać do wykonania javascripts. Oto polecenia idą. Pamiętaj, aby przejść do JDK\bin.

 jjs example.js

Ma inne commmandnarzędzie, które wygląda tak:

 jrunscript example.js

Mam nadzieję, że może to być pomocne dla innych.

Czerwony chłopiec
źródło
1

Jest to rozwiązanie „ronda”, ale możesz użyć ipython

Uruchom ipython notebook z terminala:

$ ipython notebook

Otworzy się w przeglądarce, w której możesz uruchomić javascript

wprowadź opis zdjęcia tutaj

AlexG
źródło
0

Możesz również użyć phantomjsPobierz phantomjs w zależności od systemu (moja sprawa to Max OSX) z phantomjs.org . Powinieneś umieścić ścieżkę do folderu instalacyjnego phantomjs na górze pliku javascript. na przykład. #!./bin/phantomjsZapisz swój kod. Idź do terminala, w którym zapisany jest twój javascript, i możesz uruchomić za pomocą> phantomjs filename.js

ewalel
źródło
0

Technicznie rzecz biorąc, Node.js nie jest poprawnym JavaScriptem, jaki znamy, ponieważ nie istnieje Document Object Model (DOM) . Na przykład skrypty JavaScript działające w przeglądarce nie będą działać. W ogóle. Rozwiązaniem byłoby uruchomienie JavaScript z bezgłową przeglądarką. Na szczęście projekt jest nadal aktywny: Mozilla Firefox ma tryb bezgłowy .

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.
wonny
źródło
0

Wszystko, co musisz zrobić, aby uruchomić plik js przez bash, to wpisz: $ node filename.js

Jest to podobne do Pythona, gdy wykonujesz: $ python filename.py

stevestar888
źródło