คุณรันสคริปต์ JavaScript ผ่านทางเทอร์มินัลได้อย่างไร


272

ตัวอย่างเช่นถ้าคุณมีการเรียกใช้สคริปต์ Python คุณจะพิมพ์filename.py หลามหรือถ้าคุณต้องการที่จะเรียกใช้โปรแกรม C ทำให้ชื่อไฟล์แล้ว./ ชื่อไฟล์ คุณทำสิ่งนี้กับไฟล์. js ได้อย่างไร


1
JS ไม่ใช่ภาษาที่ใช้งานทั่วไปดังนั้นทำไมคุณต้องการทำเช่นนี้? รวมไฟล์. js ของคุณไว้ในหน้า. htm (l) ผ่านแท็ก <script> จากนั้นเปิดหน้าในเบราว์เซอร์ของคุณ
helpermethod

3
@BLUC มันเรียกว่า executable
helpermethod

executable, application, program หรือ binary และในบันทึกที่เป็นประโยชน์มากขึ้นคุณจะต้องมีล่าม JavaScript เช่น V8 หรือ Rhino หรือหนึ่งใน 1,000 รายการที่ฉันลืม
คอร์

9
@OliverWeiler ไม่สามารถใช้งานได้ง่ายในสถานการณ์ทั่วไปเช่นเดียวกับภาษาอื่น ๆ แต่ฉันเชื่อว่าสามารถมีแอปพลิเคชันนอกหน้าเว็บได้ :)
คอร์

แอปพลิเคชันของ JavaScript อยู่ใน Unity 3D
Bradman175

คำตอบ:


123

คุณจะต้องมีเครื่องมือจาวาสคริปต์ (เช่นRhino ของ Mozilla ) เพื่อประเมินสคริปต์ - เหมือนกับที่คุณทำกับ Python แม้ว่าหลังจะมาพร้อมกับการแจกแจงมาตรฐาน

หากคุณติดตั้งแรด (หรือทางเลือก) และบนเส้นทางของคุณการใช้ JS อาจทำได้ง่ายเหมือน

> rhino filename.js

เป็นเรื่องที่น่าสังเกตว่าแม้ว่า JavaScript เป็นเพียงภาษาในตัวของมันเอง แต่สคริปต์จำนวนมากคิดว่าพวกมันจะทำงานในสภาพแวดล้อมที่เหมือนเบราว์เซอร์และพยายามเข้าถึงตัวแปรทั่วโลกเช่นlocation.hrefและสร้างผลลัพธ์โดยการต่อท้าย DOM printวัตถุมากกว่าการโทร

หากคุณมีสคริปต์ที่เขียนขึ้นสำหรับหน้าเว็บคุณอาจจำเป็นต้องตัดหรือแก้ไขเพื่อให้ยอมรับอาร์กิวเมนต์จาก stdin และเขียนเป็น stdout (ฉันเชื่อว่า Rhino มีโหมดที่จะจำลอง vars ทั่วโลกของเบราว์เซอร์มาตรฐานซึ่งช่วยได้มาก แต่ฉันไม่สามารถหาเอกสารสำหรับสิ่งนี้ได้ในตอนนี้)


4
FYI ความแตกต่างระหว่างแรดและ spidermonkey (ทั้งคู่เป็นการสร้าง Mozilla): stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Kelvin

3
บน Debian / Ubuntu: 'apt-get install rhino' และไบนารีเรียกว่า js
pevik

ฉันไม่รู้ว่าคุณรู้สึกเหมือนกันหรือไม่ แต่ฉันพบว่า rhyno นั้นค่อนข้างบอบบางและบั๊กกี้ ... (ใช้ Ubuntu 14.04)
IonicăBizău

1
ใช้งานได้สำหรับฉันใช้ print ("msg") สำหรับการดีบักมากกว่าการใช้ console.log ()
Arefe

391

คำตอบก็คือ NodeJS!

Node.js เป็นแพลตฟอร์มที่สร้างจากรันไทม์ JavaScript ของ Chrome สำหรับการสร้างแอปพลิเคชันเครือข่ายที่รวดเร็วและปรับขนาดได้อย่างง่ายดาย Node.js ใช้โมเดล I / O ที่ไม่มีการปิดกั้นเหตุการณ์ซึ่งทำให้มีน้ำหนักเบาและมีประสิทธิภาพเหมาะสำหรับแอปพลิเคชันตามเวลาจริงที่ใช้ข้อมูลจำนวนมากซึ่งทำงานบนอุปกรณ์แบบกระจาย

การใช้เทอร์มินัลคุณจะสามารถเริ่มต้นได้โดยใช้nodeคำสั่ง

$ node
> 2 + 4
6
> 

หมายเหตุ : หากคุณต้องการออกเพียงพิมพ์

.exit

คุณยังสามารถเรียกใช้ไฟล์ JavaScript เช่นนี้:

node file.js

«ติดตั้งเดี๋ยวนี้»


@NadirSampaoli ใช่มันเป็นเทคโนโลยีใหม่ที่ยอดเยี่ยมจริงๆ!
IonicăBizău

ข้อเสียเพียงอย่างเดียว (ถ้าคุณต้องการเรียกมันว่า) คือโหนดนั้นอยู่ใน "โหมดเข้มงวด" เสมอ ถูกต้องหรือไม่
ขีดตกต่ำสุดขั้ว Sampaoli

@NadirSampaoli อืมฉันไม่แน่ใจ ดูคำถามนี้: stackoverflow.com/q/9031888/1420197
IonicăBizău

10
@NadirSampaoli ฉันสงสัยว่ามันนับว่าเป็น "ข้อเสีย" โหมดเข้มงวดจะดีกว่าสำหรับทุกคน
ครัวซองต์ Paramagnetic

คำแนะนำเกี่ยวกับการห่อจาวาสคริปต์ไว้ในคำสั่ง 'ผู้บริโภค' ขั้นสุดท้ายผู้ใช้ไม่ต้องสนใจอะไร? ในขณะที่$> sudo apt-get install myFancyCmdตามมาด้วย$>myFancyCmd hello.jpg -w 1234?
Frank Nocke

133

หากคุณมีMacคุณสามารถรับjscคอนโซลจาวาสคริปต์ใน OS X (Terminal) โดยพิมพ์

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

ในTerminal.app Terminal.app

คุณสามารถเรียกใช้สคริปต์. js หนึ่งรายการโดยเพิ่มชื่อเป็นอาร์กิวเมนต์สำหรับ jsc เช่นนี้:

jsc your_awesome_script_name.js

แจ้งให้ทราบconsole.log()ล่วงหน้า: ฉันใช้ในระหว่างการพัฒนา แต่ jsc ต้องการdebug()ฟังก์ชั่นแทน

บนUbuntuคุณมีECMAScript shellที่ดีในการกำจัดของคุณ ระหว่างพวกเขามันคุ้มค่าที่จะกล่าวถึงแมงมุม คุณสามารถเพิ่มได้โดยsudo apt-get install spidermonkey

บนWindowsเช่นเดียวกับคนอื่น ๆ บอกว่าคุณสามารถพึ่งพาcscriptและwscriptสร้างขึ้นบนระบบปฏิบัติการโดยตรง

ฉันจะเพิ่มอีก :) วิธีคิดในการแก้ไขปัญหาหากคุณมีเวลาและต้องการเรียนรู้สิ่งใหม่ที่ฉันต้องการพูดถึงกาแฟสคริปต์ที่มีคอมไพเลอร์ / คอนโซลของตัวเองและให้ Javascript ถูกต้องมาก คุณสามารถลองบนเบราว์เซอร์ของคุณได้ (ลิงก์ "ลอง coffeescript")


Ubuntu ไม่สนับสนุน SpiderMonkey ตั้งแต่ 10.04 (คุณรู้ไหมว่าทำไม? askubuntu.com/q/180572/482285 )
Maciek

1
@maciek SpiderMonkey ยังคงใช้งานได้กับ Ubuntu แต่ภายใต้ชื่ออื่น: packages.ubuntu.com/trusty/libmozjs-24-bin
microspino

1
@maciek ... ดังนั้นคุณสามารถทำได้: sudo apt-get install libmozjs-24-binและการใช้sudo ln -sf /usr/bin/js24 /usr/bin/jsงานกับjsในเชลล์ของคุณ
microspino

โดยวิธีที่console.logดีทำงานร่วมกับโหนดที่ติดตั้งบน Ubuntu sudo apt install nodejsด้วย สมบูรณ์แบบสำหรับconsole.log('hey world, here I am')แอป kinda ซึ่งคุณสามารถใช้งานnode hey.jsได้
Nagev

30

ใช้ node.js สำหรับตัวอย่างต่อไปนี้เป็นตัวอย่างวิธีการติดตั้งnodeโดยใช้brewบน mac:

brew update && install node

จากนั้นเรียกใช้โปรแกรมของคุณโดยพิมพ์node filename.jsและคุณสามารถใช้console.log()สำหรับการส่งออก


สิ่งนี้เป็นไปอย่างยอดเยี่ยมเมื่อใช้ร่วมกับgithub.com/remy/nodemon ซึ่งจะดูไฟล์จาวาสคริปต์ใด ๆ และเรียกใช้อีกครั้งเมื่อมีการเปลี่ยนแปลง ดังนั้นเพียงแค่รันด้วย nodemon yourjavascript.js
Denis

4
คุณไม่หมายถึงbrew install nodeเหรอ install nodeด้วยตัวของมันเองจะไม่ทำอะไรเลย
numbermaniac

11

มันค่อนข้างหยาบ แต่คุณสามารถเปิดคอนโซล Javascript ใน Chrome (Ctrl + Shift + J) และวางเนื้อหาข้อความของไฟล์ * .js และกด Enter


4
consoleอันที่จริงไม่ว่าน้ำมันดิบและฉันประหลาดใจที่ไม่มีใครพูดคุยเกี่ยวกับ
Eduard Florinescu

11

หากคุณใช้ MacBook

  1. ตั้งค่าnode.jsในระบบของคุณและเปิดเครื่อง
  2. นำทางไปยังไดเร็กทอรีที่บันทึกไฟล์ js
  3. เพื่อรันรัน node <filename.js>

ตัวอย่างเช่นถ้าชื่อไฟล์ถูกscript.jsเรียกใช้node script.js


1
โหนดใกล้กับ javascript แต่ไม่ใช่ javascript เช่น javascript ไม่รองรับไฟล์ IO จำเป็นต้องมีฟังก์ชั่นโดยปริยาย มันอาจไม่ใช่วิธีที่ดีในการทดสอบไฟล์จาวาสคริปต์
Weijing Jay Lin

5

อีกทางเลือกหนึ่งถ้าคุณเพียงแค่มองไปรอบ ๆ ด้วย Javascript ตัวเลือกเบราว์เซอร์ที่ดีคือJavascript Lab ของ Codecademy

พวกเขายังมี Python และ Ruby IDE


4

หากคุณใช้ Windows PC คุณสามารถใช้ WScript.exe หรือ CScript.exe

เพียงจำไว้ว่าคุณไม่ได้อยู่ในสภาพแวดล้อมของเบราว์เซอร์ดังนั้นสิ่งที่ชอบdocument.writeหรืออะไรก็ตามที่อาศัยwindowวัตถุจะไม่ทำงานเช่นwindow.alertนั้น แต่คุณสามารถโทรหาWScript.Echoออกสิ่งที่ส่งไปยังพรอมต์

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


มีหนึ่งสำหรับ Ubuntu, Google Chrome หรือไม่
BLUC

คุณควรใส่ข้อมูลสำคัญในคำถาม ขอโทษด้วยฉันเป็น Windows Geek - ฉันไม่ค่อยรู้จัก Ubuntu มากนัก นอกจากนี้คุณอาจจะไม่สามารถเข้าถึง Google Chrome เมื่อเรียกใช้จาวาสคริปต์จากพรอมต์เชลล์ของ Ubuntu แก้ไข: คำตอบของ Andrzej Doyle เป็นวิธีที่จะไปหาคุณ
Anders Tornblad

4

ฉันพยายามค้นคว้าด้วย แต่กลับลงเอยด้วยการใช้jsconsole.comโดย Remy Sharp (เขาสร้าง jsbin.com ด้วย) ฉันทำงานบน Ubuntu 12.10 ดังนั้นฉันจึงต้องสร้างไอคอนพิเศษแต่ถ้าคุณอยู่บน Windows และใช้ Chrome เพียงไปที่เครื่องมือ> สร้างทางลัดไปยังแอปพลิเคชัน (หมายเหตุสิ่งนี้ใช้งานไม่ได้ดีหรือในกรณีของฉัน บน Ubuntu) ไซต์นี้ใช้งานได้ดีกับjscคอนโซลของMac : จริงๆแล้วมันมีคุณสมบัติเจ๋ง ๆ เช่นกัน (เช่นการโหลดjscไลบรารี่ / รหัสจาก URL) ที่ฉันเดาว่าไม่ได้

หวังว่านี่จะช่วยได้



2

คำตอบทั้งหมดข้างต้นที่ดีที่ฉันเห็นสิ่งหนึ่งที่ขาดหายไปและอาจได้รับการพิจารณาสำหรับการเรียกใช้javascripts(*.js)ไฟล์ที่ไม่เกี่ยวข้องกับน้องชายของjavascriptJava

JDKjavascriptsขึ้นมาด้วยสองเครื่องมือที่ดีสามารถใช้สำหรับการดำเนินการ นี่คือคำสั่งที่จะไป JDK\binตรวจสอบให้แน่ใจเพื่อนำทางไปยัง

 jjs example.js

มันเกิดขึ้นพร้อมกับcommmandเครื่องมืออื่นที่จะเป็นเช่นนี้ -

 jrunscript example.js

ฉันหวังว่านี่อาจเป็นประโยชน์กับคนอื่น ๆ


1

นี่คือทางออก "วงเวียน" แต่คุณสามารถใช้ ipython

เริ่มสมุดบันทึก ipython จากเทอร์มินัล:

$ ipython notebook

มันจะเปิดในเบราว์เซอร์ที่คุณสามารถเรียกใช้จาวาสคริปต์

ป้อนคำอธิบายรูปภาพที่นี่


0

คุณยังสามารถใช้phantomjsดาวน์โหลด phantomjs ขึ้นอยู่กับระบบ (กรณีของฉันคือ Max OSX) จากphantomjs.org คุณควรวางพา ธ ไปยังโฟลเดอร์การติดตั้ง phantomjs ที่ด้านบนของไฟล์จาวาสคริปต์ของคุณ เช่น. #!./bin/phantomjsบันทึกรหัสของคุณ ไปที่เทอร์มินัลที่บันทึกจาวาสคริปต์ของคุณและคุณสามารถใช้งานได้> phantomjs filename.js


0

เทคนิคNode.jsไม่เหมาะสม JavaScript ที่เรารู้ว่ามันตั้งแต่ที่มีอยู่ไม่Document Object Model (DOM) ตัวอย่างเช่นสคริปต์ JavaScript ที่ทำงานในเบราว์เซอร์จะไม่ทำงาน เลย วิธีแก้ปัญหาคือเรียกใช้ JavaScript ด้วยเบราว์เซอร์ที่ไม่มีส่วน โชคดีที่มีโครงการที่ยังคงใช้งาน: Mozilla Firefox มีโหมดหัวขาด

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

สิ่งที่คุณต้องทำเพื่อเรียกใช้ไฟล์ js ผ่าน bash คือประเภท: $ node filename.js

คล้ายกับในไพ ธ อนเมื่อคุณ: $ python filename.py

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.