Patrzę na programowanie w Javascript bez przeglądarki. Chcę uruchamiać skrypty z wiersza poleceń systemu Linux lub Mac OS X, podobnie jak każdy inny język skryptowy (ruby, php, perl, python ...)
$ javascript my_javascript_code.js
Zajrzałem do pająka małpy (Mozilla) i wersji 8 (Google), ale oba wydają się być osadzone.
Czy ktoś używa JavaScript jako języka skryptowego do wykonania z wiersza poleceń?
Jeśli ktoś jest ciekawy dlaczego szukam do tego, byłem wywiercenie node.js . Wydajność node.js sprawia, że zastanawiam się, czy javascript może być użytecznym językiem skryptowym do przetwarzania dużych danych.
javascript
unix
command-line
scripting
v8
Daniel
źródło
źródło
Odpowiedzi:
Znalazłem to powiązane pytanie na ten temat, ale jeśli chcesz bezpośrednich linków, oto one:
Dziwię się, że node.js nie ma powłoki, ale wydaje mi się, że bardziej przypomina serwer internetowy zorientowany na epoll / selector / zorientowany na zdarzenia, więc może nie potrzebuje pełnego zestawu funkcji JS, ale ja nie jestem zbyt zaznajomiony z jego wewnętrznym działaniem.
Ponieważ wydaje się, że interesuje Cię node.js i ponieważ jest on oparty na V8, najlepiej byłoby postępować zgodnie z tymi instrukcjami konfigurowania środowiska V8, aby mieć spójną podstawę do programowania w JavaScript (mam nadzieję, że JSC i V8 to głównie to samo, ale nie jestem pewien).
źródło
nodejs
w terminalu daje dostęp do REPL.Główna odpowiedź
Tak, aby odpowiedzieć na Twoje pytanie, możliwe jest użycie JavaScript jako „zwykłego” języka skryptowego z wiersza poleceń, bez przeglądarki. Skoro inni jeszcze o tym nie wspominali, to widzę, że warto wspomnieć:
W systemach opartych na Debianie (a dotyczy to przynajmniej Ubuntu, Linux Mint i aptosid / sidux), poza opcjami instalacji Rhino i innych, o których już wspomniano, masz inne opcje:
Zainstaluj
libmozjs-24-bin
pakiet, który zapewni Ci silnik Spidermonkey Mozilli w linii poleceń jako prostyjs24
, który może być również używany jako interaktywny interpreter. (Symbol24
w nazwie oznacza, że odpowiada wersji 24 przeglądarki Firefox).Zainstaluj
libv8-dev
pakiet, który zapewni Ci silnik Google V8. Jako jeden ze swoich przykładów zawiera plik,/usr/share/doc/libv8-dev/examples/shell.cc.gz
który można zdekompresować i skompilować w bardzo prosty sposób (npg++ -Os shell.cc -o shell -lv8
.).Zainstaluj pakiet,
nodejs
a będzie on dostępny zarówno jako plik wykonywalny,nodejs
jak i jako alternatywa (w sensie Debiana), aby udostępnićjs
plik wykonywalny. Kompilacja JIT jest udostępniana dzięki uprzejmości V8.Zainstaluj pakiet
libjavascriptcoregtk-3.0-bin
i użyj interpretera JavaScriptCore (jsc
) WebKit jako zwykłego interpretera z wiersza poleceń. I to bez konieczności posiadania dostępu do komputera Mac. Na wielu platformach (np. X86 i x86_64) ten interpreter będzie dostarczany z kompilatorem JIT.Tak więc, prawie bez kompilacji, będziesz mieć do dyspozycji trzy ciężkie silniki JavaScript.
Uzupełnienie
Po zainstalowaniu możesz po prostu utworzyć pliki za pomocą
#!/usr/bin/js
linii shebang i wszystko będzie działać:$ 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! $
źródło
Zainstalowałem Node.js na iMacu i
w bash będzie działać.
źródło
nodejs somefile.js
odkąd zainstalowałem pakietWiem, że pytałeś o Linuksa i Maca; Mam zamiar udzielić odpowiedzi dla systemu Windows, na wypadek gdyby inne osoby zainteresowane systemem Windows znalazły Twoje pytanie.
Windows zawiera silnik Javascript, którego można używać z wiersza poleceń.
Wszystkie wersje systemu Windows, począwszy od Windows 98, zawierały coś, co nazywa się „ Hostem skryptów systemu Windows ”. Jest to standardowy sposób na obsługę "silników" skryptów. Od pierwszego wydania WSH obsługuje JScript, wersję Javascript firmy Microsoft. Oznacza to między innymi, że z wiersza poleceń systemu Windows można po prostu wywołać nazwę dowolnego pliku * .js i będzie on działał w silniku JScript. (za pomocą wscript.exe lub cscript.exe)
źródło
Ponieważ nikt o tym nie wspomniał: od wersji Java 1.6 Java JDK jest również dostarczana w pakiecie z wierszem poleceń JavaScript i REPL.
Opiera się na Rhino: https://developer.mozilla.org/en/docs/Rhino
W Javie 1.6 i 1.7 polecenie nazywa się
jrunscript
(jrunscript.exe
w systemie Windows) i można je znaleźć w folderze bin JDK.Począwszy od Java 1.8 jest dołączona nowa implementacja JavaScript (Nashorn: https://blogs.oracle.com/nashorn/ )
Tak więc w Javie 1.8 polecenie nazywa się
jjs
(jjs.exe
w systemie Windows)źródło
FWIW, node.js jest dostarczany z powłoką, spróbuj wpisać:
po zainstalowaniu node.js, aby zobaczyć, jak działa. Instalacja rlwrap jest dość standardowa, aby dobrze działała.
źródło
Możesz sprawdzić Rhino .
Powłoka Rhino zapewnia sposób uruchamiania skryptów JavaScript w trybie wsadowym:
źródło
Wiem, że to stare, ale powinieneś także wypróbować Zombie.js . Bezgłowa przeglądarka, która jest niesamowicie szybka i idealna do testowania!
źródło
Używam Ubuntu 12.10 i js z wiersza poleceń
Jest dostępny z moją instalacją javy:
el@apollo:~/foo$ java -version java version "1.6.0_27" el@apollo:~/foo$ which js /usr/bin/js
Kilka przykładów:
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!' ]
Niebo jest granicą, więc idź dalej.
źródło
PhantomJS również to umożliwia
http://phantomjs.org/
źródło
Znalazłem naprawdę fajny silnik JS zgodny z ECMAScript typu open source, całkowicie napisany w C, zwany duktape
Powodzenia!
źródło
Cóż, istnieje JavaScript jako OSA , rozszerzenie, które zapewnia JavaScript jako alternatywę dla appleScript. Używałem tego około 10 lat temu, nie wiem, czy nadal działa z obecnymi wersjami systemu operacyjnego
źródło
JSDB , dostępne dla systemów Linux, Windows i Mac, powinno całkiem dobrze pasować. Używa silnika Spidermonkey Javascript Mozilli i wydaje się być mniej kłopotliwa w instalacji w porównaniu z node.js (przynajmniej ostatnio próbowałem node.js kilka lat temu).
Znalazłem JSDB z tej interesującej listy powłok Javascript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells
źródło