Bagaimana Anda menjalankan skrip JavaScript melalui Terminal?


272

Misalnya, jika Anda adalah untuk menjalankan Python script yang Anda akan ketik python filename.py atau jika Anda ingin menjalankan program C make nama file kemudian ./ nama file . Bagaimana Anda melakukan ini dengan file .js ?


1
JS bukan bahasa tujuan umum, jadi mengapa Anda ingin melakukan ini? Sertakan file .js Anda ke halaman .htm (l) melalui tag <script>, lalu buka halaman di browser Anda.
helpermethod

3
@BLUC Ini disebut executable.
helpermethod

dieksekusi, aplikasi, program, atau biner. Dan pada catatan yang lebih bermanfaat, Anda akan membutuhkan penerjemah JavaScript, seperti V8 atau Badak, atau salah satu dari 1.000 lainnya yang saya lupa.
Corbin

9
@ OliverWeiler tidak mudah diaplikasikan dalam situasi umum seperti beberapa bahasa lain, tapi saya yakin ini bisa memiliki aplikasi di luar halaman web :).
Corbin

Aplikasi JavaScript dalam Unity 3D
Bradman175

Jawaban:


123

Anda akan memerlukan mesin JavaScript (seperti Badak Mozilla ) untuk mengevaluasi skrip - persis seperti yang Anda lakukan untuk Python, meskipun yang terakhir dikirimkan dengan distribusi standar.

Jika Anda memiliki Badak (atau alternatif) diinstal dan berada di jalur Anda, menjalankan JS memang sesederhana itu

> rhino filename.js

Perlu dicatat bahwa meskipun JavaScript hanyalah sebuah bahasa dalam dirinya sendiri, banyak skrip tertentu berasumsi bahwa mereka akan dieksekusi dalam lingkungan seperti browser - dan jadi coba akses variabel global seperti location.href, dan buat output dengan menambahkan Objek DOM daripada menelepon print.

Jika Anda sudah memiliki skrip yang ditulis untuk halaman web, Anda mungkin perlu membungkus atau memodifikasinya agar dapat menerima argumen dari stdin dan menulis ke stdout. (Saya percaya Rhino memiliki mode untuk meniru vars global browser standar yang banyak membantu, meskipun saya tidak dapat menemukan dokumen untuk ini sekarang.)


4
FYI, perbedaan antara badak dan spidermonkey (keduanya adalah kreasi Mozilla): stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Kelvin

3
Di Debian / Ubuntu: 'apt-get install rhino' dan binary disebut js.
pevik

Saya tidak tahu apakah Anda merasakan hal yang sama, tetapi saya menemukan rhyno cukup rapuh dan buggy ... (menjalankan Ubuntu 14.04)
Ionică Bizău

1
Ini berfungsi untuk saya, gunakan cetak ("msg") untuk debugging daripada menggunakan console.log ()
Arefe

391

Jawaban lain adalah NodeJS!

Node.js adalah platform yang dibangun di atas runtime JavaScript Chrome untuk dengan mudah membangun aplikasi jaringan yang cepat dan dapat diskalakan. Node.js menggunakan model I / O yang didorong oleh peristiwa yang membuatnya ringan dan efisien, sempurna untuk aplikasi real-time data-intensif yang berjalan di perangkat terdistribusi.

Menggunakan terminal Anda akan dapat memulainya menggunakan nodeperintah.

$ node
> 2 + 4
6
> 

Catatan : Jika Anda ingin keluar ketik saja

.exit

Anda juga dapat menjalankan file JavaScript seperti ini:

node file.js

«Instal SEKARANG»


@NadirSampaoli Ya, ini teknologi baru yang benar-benar hebat!
Ionică Bizău

Satu-satunya downside (jika Anda ingin menyebutnya begitu) adalah simpul selalu berada pada "mode ketat". Apakah itu benar?
Nadir Sampaoli

@NadirSampaoli Hmmm, saya tidak yakin. Lihat pertanyaan ini: stackoverflow.com/q/9031888/1420197
Ionică Bizău

10
@NadirSampaoli Saya ragu itu dianggap sebagai "downside". Mode ketat lebih baik untuk semua orang.
The Paramagnetic Croissant

Adakah saran untuk membungkus javascript ke dalam perintah 'konsumen' akhir, pengguna tidak perlu peduli? Seperti $> sudo apt-get install myFancyCmddiikuti oleh $>myFancyCmd hello.jpg -w 1234?
Frank Nocke

133

Jika Anda memiliki Mac, Anda bisa mendapatkan jsckonsol javascript di OS X (Terminal) dengan mengetik

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

di Terminal.app .

Anda juga dapat menjalankan salah satu skrip .js Anda dengan menambahkan namanya sebagai argumen untuk jsc, seperti ini:

jsc your_awesome_script_name.js

Perhatikan : Saya menggunakan console.log()selama pengembangan tetapi jsc membutuhkan debug()fungsi sebagai gantinya.

Di Ubuntu Anda memiliki beberapa kerang ECMAScript yang bisa Anda gunakan. Di antara mereka ada baiknya menyebutkan SpiderMonkey . Anda dapat menambahkannya dengansudo apt-get install spidermonkey

Di Windows seperti yang dikatakan orang lain, Anda bisa mengandalkan cscriptdan wscriptlangsung membangun di OS.

Saya akan menambahkan juga :) cara berpikir untuk masalah ini , jika Anda punya waktu dan ingin mempelajari hal-hal baru saya ingin menyebutkan kopi-script yang memiliki kompiler / konsol sendiri dan memberi Anda Javascript yang sangat benar. Anda juga dapat mencobanya di peramban Anda (tautan "coba naskah kopi").


Ubuntu tidak mendukung SpiderMonkey sejak 10,04. (Apakah Anda tahu mengapa? Askubuntu.com/q/180572/482285 )
maciek

1
@maciek SpiderMonkey masih tersedia untuk Ubuntu tetapi dengan nama lain: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino

1
@ maciek ... jadi Anda bisa melakukannya: sudo apt-get install libmozjs-24-bindan menggunakannya sudo ln -sf /usr/bin/js24 /usr/bin/jsuntuk menggunakannya dengan js di shell Anda.
microspino

By the way console.logberfungsi dengan baik dengan node , diinstal pada Ubuntu dengan sudo apt install nodejs. Sempurna untuk console.log('hey world, here I am')aplikasi yang agak, yang bisa Anda jalankan node hey.js.
Nagev

30

Gunakan node.js untuk itu, berikut adalah contoh cara menginstal nodedengan menggunakan brewdi mac:

brew update && install node

Kemudian jalankan program Anda dengan mengetik node filename.js, dan Anda dapat menggunakan console.log()untuk output.


Ini berjalan baik dalam kombinasi dengan github.com/remy/nodemon yang akan menonton file javascript apa saja dan memutarnya kembali pada setiap perubahan. Jadi jalankan saja dengan nodemon yourjavascript.js
Denis

4
Bukankah maksud Anda brew install node? install nodesendiri tidak akan benar-benar melakukan apa pun.
numbermaniac

11

Itu kasar, tetapi Anda dapat membuka konsol Javascript di Chrome (Ctrl + Shift + J) dan menempelkan konten teks dari file * .js dan tekan Enter.


4
Sebenarnya tidak begitu kasar, dan saya kagum bahwa tidak ada yang berbicara tentang console.
Eduard Florinescu

11

Jika Anda menggunakan MacBook.

  1. Atur node.jsdi sistem Anda dan buka terminal
  2. Arahkan ke direktori, tempat file js disimpan.
  3. Untuk menjalankan dijalankan node <filename.js>

contoh, jika nama file script.jsdijalankannode script.js


1
Node dekat dengan javascript tetapi tidak sepenuhnya javascript, misalnya, javascript tidak mendukung file IO, ada yang memerlukan fungsi secara default juga; itu mungkin bukan cara yang baik untuk menguji file javascript
Weijing Jay Lin

5

Atau, jika Anda hanya ingin bermain-main dengan Javascript, opsi browser yang bagus adalah Javascript Lab Codecademy .

Mereka juga memiliki IDE Python dan Ruby.


4

Jika Anda menggunakan PC Windows, Anda dapat menggunakan WScript.exe atau CScript.exe

Ingatlah bahwa Anda tidak berada di lingkungan browser, jadi hal-hal seperti document.writeatau apa pun yang bergantung pada windowobjek tidak akan berfungsi, seperti window.alert. Sebagai gantinya, Anda dapat memanggil WScript.Echountuk menampilkan hal-hal ke prompt.

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


Apakah ada satu untuk Ubuntu, Google Chrome?
BLUC

Anda seharusnya memasukkan informasi penting itu ke dalam pertanyaan. Maaf, saya geek Windows - Saya tidak tahu banyak tentang Ubuntu. Selain itu, Anda mungkin tidak akan memiliki akses ke Google Chrome saat menjalankan javascript dari prompt shell Ubuntu. EDIT: Jawaban Andrzej Doyle adalah cara untuk Anda.
Anders Tornblad

4

Saya mencoba meneliti juga, tetapi akhirnya menggunakan jsconsole.com oleh Remy Sharp (dia juga membuat jsbin.com). Saya menjalankan Ubuntu 12.10 jadi saya harus membuat ikon khusus, tetapi jika Anda menggunakan Windows dan menggunakan Chrome, cukup buka Alat> Buat Pintasan Aplikasi (perhatikan ini tidak berfungsi dengan baik, atau sama sekali dalam kasus saya, di Ubuntu). Situs ini berfungsi sangat mirip dengan jsckonsol Mac : sebenarnya ia memiliki beberapa fitur keren juga (seperti memuat pustaka / kode dari URL) yang saya kira jsctidak.

Semoga ini membantu.



2

Semua jawaban di atas yang besar, saya melihat satu hal yang hilang dan bisa dipertimbangkan untuk menjalankan javascripts(*.js)file, yang tidak berhubungan saudara javascriptyang Java.

JDKhadir dengan dua alat yang bagus, bisa digunakan untuk mengeksekusi javascripts. Berikut adalah perintah seperti. Pastikan untuk menavigasi ke JDK\bin.

 jjs example.js

Muncul dengan commmandalat lain yang seperti ini-

 jrunscript example.js

Saya harap ini dapat membantu orang lain.


1

Ini adalah solusi "bundaran" tetapi Anda bisa menggunakan ipython

Mulai notebook ipython dari terminal:

$ ipython notebook

Ini akan terbuka di browser tempat Anda dapat menjalankan javascript

masukkan deskripsi gambar di sini


0

Anda juga dapat menggunakan phantomjsUnduh phantomjs tergantung pada sistem (kasus saya adalah Max OSX) dari phantomjs.org . Anda harus meletakkan path ke folder instalasi phantomjs di bagian atas file javascript Anda. misalnya. #!./bin/phantomjsSimpan kode Anda. Pergi ke terminal tempat javascript Anda disimpan dan Anda dapat menjalankan menggunakan> phantomjs filename.js


0

Secara teknis, Node.js bukan JavaScript yang tepat seperti yang kita kenal, karena tidak ada Document Object Model (DOM) . Misalnya, skrip JavaScript yang berjalan di browser tidak akan berfungsi. Sama sekali. Solusinya adalah menjalankan JavaScript dengan browser tanpa kepala. Untungnya ada proyek yang masih aktif: Mozilla Firefox memiliki mode tanpa kepala .

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

Yang harus Anda lakukan untuk menjalankan file js via bash adalah mengetik: $ node filename.js

Ini mirip dengan di python, ketika Anda melakukannya: $ python filename.py

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.