Saya mencari pemrograman Javascript tanpa browser. Saya ingin menjalankan skrip dari Linux atau Mac OS X command line, seperti halnya kami menjalankan bahasa scripting lainnya (ruby, php, perl, python ...)
$ javascript my_javascript_code.js
Saya melihat ke laba-laba monyet (Mozilla) dan v8 (Google), tetapi keduanya tampaknya tertanam.
Adakah yang menggunakan Javascript sebagai bahasa scripting untuk dieksekusi dari baris perintah?
Jika ada yang ingin tahu mengapa saya melihat ke dalam ini, saya telah mengaduk-aduk node.js . Kinerja node.js membuat saya bertanya-tanya apakah javascript dapat menjadi bahasa skrip yang layak untuk memproses data besar.
javascript
unix
command-line
scripting
v8
Daniel
sumber
sumber
Jawaban:
Saya menemukan pertanyaan terkait ini pada topik, tetapi jika Anda ingin tautan langsung, ini dia:
Saya terkejut node.js tidak datang dengan shell, tapi saya kira itu benar-benar lebih seperti webserver yang berorientasi pada epoll / selector / event-oriented, jadi mungkin tidak memerlukan set fitur JS lengkap, tapi saya Saya tidak terlalu terbiasa dengan pekerjaan batinnya.
Karena Anda tampaknya tertarik pada node.js dan karena ini didasarkan pada V8, mungkin yang terbaik untuk mengikuti instruksi untuk mendapatkan pengaturan lingkungan V8 sehingga Anda dapat memiliki dasar yang konsisten untuk pemrograman JavaScript Anda (saya berharap JSC dan V8 sebagian besar sama, tapi saya tidak yakin).
sumber
nodejs
terminal memberikan akses ke REPL.Jawaban utama
Ya, untuk menjawab pertanyaan Anda, dimungkinkan untuk menggunakan JavaScript sebagai bahasa skrip "biasa" dari baris perintah, tanpa browser. Karena orang lain belum menyebutkannya, saya melihat bahwa itu layak disebutkan:
Pada sistem berbasis Debian (dan ini termasuk Ubuntu, Linux Mint, dan aptosid / sidux, setidaknya), selain opsi untuk menginstal Rhino dan lainnya yang telah disebutkan, Anda memiliki opsi lain:
Instal
libmozjs-24-bin
paket, yang akan memberi Anda mesin Spidermonkey Mozilla di baris perintah sebagai sederhanajs24
, yang dapat digunakan juga sebagai juru bahasa interaktif. (24
Nama tersebut sesuai dengan versi 24 dari Firefox).Instal
libv8-dev
paket, yang akan memberi Anda mesin V8 Google. Ia memiliki, sebagai salah satu contohnya, file/usr/share/doc/libv8-dev/examples/shell.cc.gz
yang dapat Anda kompres dan kompilasi dengan sangat sederhana (misalnya,g++ -Os shell.cc -o shell -lv8
).Instal paket
nodejs
dan itu akan tersedia baik sebagai executablenodejs
dan sebagai alternatif (dalam arti Debian) untuk menyediakanjs
executable. Kompilasi JIT disediakan sebagai milik V8.Instal paket
libjavascriptcoregtk-3.0-bin
dan gunakan penerjemah JavaScriptCore WebKit (jsc
) sebagai juru bahasa biasa dari baris perintah. Dan ini tanpa perlu memiliki akses ke Mac. Pada banyak platform (mis., X86 dan x86_64), juru bahasa ini akan datang dengan kompiler JIT.Jadi, dengan hampir tanpa kompilasi Anda akan memiliki tiga mesin JavaScript kelas berat yang Anda inginkan.
Tambahan
Setelah Anda menginstal sesuatu, Anda dapat membuat file dengan
#!/usr/bin/js
baris shebang dan semuanya akan berfungsi:sumber
Saya telah menginstal Node.js pada iMac dan
di bash akan bekerja.
sumber
nodejs somefile.js
karena saya telah menginstal paketSaya tahu Anda bertanya tentang Linux dan Mac; Saya akan memberikan jawaban untuk Windows, kalau-kalau orang lain yang tertarik pada Windows menemukan pertanyaan Anda.
Windows menyertakan mesin Javascript yang dapat digunakan dari baris perintah.
Semua versi Windows, sejak Windows 98, telah memasukkan sesuatu yang disebut " Host Script Windows ". Ini adalah cara standar windows untuk mendukung skrip "mesin". Sejak rilis pertama, WSH mendukung JScript, versi Javascript dari Microsoft. Antara lain, ini berarti bahwa, dari baris perintah windows, Anda bisa memanggil nama file * .js, dan itu akan berjalan di mesin JScript. (melalui wscript.exe atau cscript.exe)
sumber
Karena tidak ada yang menyebutkannya: Sejak Java 1.6 Java JDK juga dibundel dengan commandline JavaScript dan REPL.
Ini didasarkan pada Badak: https://developer.mozilla.org/en/docs/Rhino
Di Java 1.6 dan 1.7 perintah ini disebut
jrunscript
(jrunscript.exe
pada Windows) dan dapat ditemukan di folder bin JDK.Mulai dari Jawa 1.8 ada paket implementasi JavaScript baru (Nashorn: https://blogs.oracle.com/nashorn/ )
Jadi di Java 1.8 perintah ini disebut
jjs
(jjs.exe
di Windows)sumber
FWIW, node.js hadir dengan sebuah shell, coba ketikkan:
setelah Anda menginstal node.js untuk melihatnya beraksi. Cukup standar untuk menginstal rlwrap agar berfungsi dengan baik.
sumber
Anda mungkin ingin memeriksa Badak .
Rhino Shell menyediakan cara untuk menjalankan skrip JavaScript dalam mode batch:
sumber
Saya tahu ini sudah tua tetapi Anda juga harus mencoba Zombie.js . Browser tanpa kepala yang sangat cepat dan ideal untuk pengujian!
sumber
Saya menggunakan Ubuntu 12.10 dan js dari commandline
Ini tersedia dengan instalasi java saya:
Beberapa contoh:
Langit adalah batasnya, lalu terus berjalan.
sumber
PhantomJS memungkinkan Anda untuk melakukan ini juga
http://phantomjs.org/
sumber
Saya menemukan sumber terbuka ini benar-benar bagus ECMAScript JS Engine compliant sepenuhnya ditulis dalam C yang disebut duktape
Semoga berhasil!
sumber
Yah ada JavaScript sebagai OSA , ekstensi yang menyediakan JavaScript sebagai alternatif untuk appleScript. Saya sudah menggunakannya sekitar 10 tahun yang lalu, tidak tahu apakah masih bekerja dengan versi OS saat ini
sumber
JSDB , tersedia untuk Linux, Windows, dan Mac harus sesuai dengan tagihan. Ini menggunakan mesin Javascript Spidermonkey Mozilla dan tampaknya tidak terlalu merepotkan untuk menginstal dibandingkan dengan node.js (setidaknya terakhir kali saya mencoba node.js beberapa tahun yang lalu).
Saya menemukan JSDB dari daftar kerang Javascript yang menarik ini: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells
sumber