터미널을 통해 JavaScript 스크립트를 어떻게 실행합니까?


272

예를 들어, Python 스크립트를 실행하려면 python filename.py를 입력 하거나 C 프로그램을 실행하려면 filename./ filename으로 만드십시오 . 당신은 어떻게 이것을 하는가 의 .js 파일?


1
JS는 범용 언어가 아니기 때문에 왜 그렇게 하시겠습니까? <script> 태그를 통해 .js 파일을 .htm (l) 페이지에 포함시킨 다음 브라우저에서 페이지를여십시오.
helpermethod

3
@BLUC 실행 파일이라고합니다.
helpermethod

실행 파일, 응용 프로그램, 프로그램 또는 이진. 더 유용한 메모에는 V8 또는 Rhino와 같은 JavaScript 인터프리터 또는 내가 잊어 버린 다른 1000 개의 인터프리터가 필요합니다.
코빈

9
@OliverWeiler 다른 언어처럼 일반적인 상황에서 쉽게 적용 할 수는 없지만 웹 페이지 외부에서 응용 프로그램을 사용할 수 있다고 생각합니다. :).
코빈

JavaScript의 적용은 Unity 3D
Bradman175

답변:


123

스크립트를 평가하려면 JavaScript 엔진 (예 : Mozilla의 Rhino 등 )이 필요합니다. Python과 마찬가지로 스크립트가 표준 배포판과 함께 제공됩니다.

Rhino (또는 대안)가 설치되어 있고 경로에있는 경우 JS 실행은 실제로 간단 할 수 있습니다.

> rhino filename.js

JavaScript는 그 자체로는 단순한 언어이지만 많은 특정 스크립트는 브라우저와 같은 환경에서 실행될 것이라고 가정하므로과 같은 전역 변수에 액세스 location.href하고 추가하여 출력을 생성하십시오. 를 호출하는 대신 DOM 객체 print.

웹 페이지 용으로 작성된 스크립트를 보유한 경우 stdin의 인수를 승인하고 stdout에 쓰도록 스크립트를 약간 랩핑하거나 수정해야 할 수도 있습니다. (Rhino에는 표준 브라우저 전역 변수를 에뮬레이트하는 모드가 있다고 생각합니다.이 문서는 찾을 수 없지만 많이 도움이됩니다.)


4
참고로, 코뿔소와 스파이더 몽키의 차이점 (모질라 작품) : stackoverflow.com/questions/3563909/rhino-vs-spidermonkey
Kelvin

3
데비안 / 우분투 : 'apt-get install rhino'와 바이너리는 js라고합니다.
pevik

나는 당신이 같은 것을 느끼는지 모르겠지만, 나는 꽤 깨지기 쉬운 버그를 발견하고 있습니다 ... (Ubuntu 14.04 실행)
Ionică Bizău

1
이것은 나를 위해 작동합니다. console.log ()를 사용하는 것보다 디버깅을 위해 print ( "msg")를 사용하십시오
Arefe

391

또 다른 대답은 NodeJS입니다!

Node.js는 빠르고 확장 가능한 네트워크 애플리케이션을 쉽게 구축 할 수 있도록 Chrome의 JavaScript 런타임에 구축 된 플랫폼입니다. Node.js는 이벤트 중심의 비 차단 I / O 모델을 사용하여 가볍고 효율적이며 분산 된 장치에서 실행되는 데이터 집약적 인 실시간 애플리케이션에 적합합니다.

터미널을 사용하면 node명령 을 사용하여 시작할 수 있습니다 .

$ node
> 2 + 4
6
> 

참고 : 종료하려면 다음을 입력하십시오.

.exit

다음과 같이 JavaScript 파일을 실행할 수도 있습니다.

node file.js

«지금 설치하십시오»


@NadirSampaoli 네, 정말 신기합니다!
Ionică Bizău

단점은 노드가 항상 "엄격 모드"에 있다는 것입니다. 맞습니까?
Nadir Sampaoli

@NadirSampaoli 흠, 확실하지 않습니다. 이 질문을보십시오 : stackoverflow.com/q/9031888/1420197
Ionică Bizău

10
@NadirSampaoli 나는 그것이 "다운 사이드"로 간주되는 것을 의심한다. 엄격한 모드는 모든 사람에게 더 좋습니다.
상자성 크로와상

자바 스크립트를 최종 '소비자'명령에 래핑하는 것에 대한 조언이 있습니까? 사용자는 신경 쓰지 않아도됩니까? 에서 $> sudo apt-get install myFancyCmd와 같이 $>myFancyCmd hello.jpg -w 1234?
Frank Nocke

133

Mac 이있는 경우 다음 jsc을 입력하여 OS X (터미널)에서 자바 스크립트 콘솔을 얻을 수 있습니다.

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

에서 Terminal.app .

다음과 같이 이름을 jsc의 인수로 추가하여 .js 스크립트 중 하나를 실행할 수도 있습니다.

jsc your_awesome_script_name.js

공지 사항 : console.log()개발 중에 사용 하지만 jsc는 debug()대신 기능이 필요합니다 .

우분투 당신은 몇 가지 좋은이 ECMAScript를 껍질 당신의 처리에있다. 그들 사이에 SpiderMonkey 를 언급 할 가치가 있습니다. 당신은 그것을 추가 할 수 있습니다sudo apt-get install spidermonkey

윈도우 다른 사람들은 당신이 의지 할 수 말했듯 cscriptwscript직접 OS에 내장.

나는 또한 :) 문제에 대한 다른 사고 방식을 추가 하고 싶습니다. 시간이 있고 새로운 것들을 배우고 싶다면 자체 컴파일러 / 콘솔이 있고 커피 스크립트 를 언급하고 싶습니다 . 브라우저에서도 시도해 볼 수 있습니다 ( "try coffeescript"링크).


우분투는 10.04 이후 SpiderMonkey를 지원하지 않습니다. (이유를 아십니까? askubuntu.com/q/180572/482285 )
maciek

1
@maciek SpiderMonkey는 여전히 우분투에서도 사용할 수 있지만 다른 이름으로도 사용됩니다 : 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 2012 년

그건 그렇고 우분투에 설치된 nodeconsole.log 와 잘 작동합니다 . 로 실행할 수있는 앱에 적합합니다 . sudo apt install nodejsconsole.log('hey world, here I am')node hey.js
Nagev

30

사용 여기에, 그것을 위해 Node.js를 어떻게 설치하는 예입니다 node사용하여 brewMac에서 :

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

조잡하지만 Chrome에서 Javascript 콘솔을 열고 (Ctrl + Shift + J) * .js 파일의 텍스트 내용을 붙여넣고 Enter 키를 누릅니다.


4
실제로 그렇게 조잡하지 않다. 그리고 나는 아무도 이야기하지 않은 것에 놀랐다 console.
에두아르 플로리 네 스쿠

11

MacBook을 사용하는 경우

  1. node.js시스템에서 설정 하고 터미널을 엽니 다
  2. js 파일이 저장된 디렉토리로 이동하십시오.
  3. 실행을 실행하려면 node <filename.js>

예를 들어, filename이 script.js실행되는 경우node script.js


1
node는 javascript에 가깝지만 정확히 javascript는 아닙니다. 예를 들어 javascript는 파일 IO를 지원하지 않습니다. 기본적으로 기능도 필요합니다. 자바 스크립트 파일을 테스트하는 좋은 방법이 아닐 수도 있습니다
Weijing Jay Lin


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


Chrome Ubuntu 용으로 하나 있습니까?
BLUC

그 중요한 정보를 질문에 넣어야합니다. 죄송합니다, 나는 Windows 괴짜입니다-나는 우분투에 대해 잘 모른다. 또한 우분투 쉘 프롬프트에서 자바 스크립트를 실행할 때 아마도 Chrome에 액세스 할 수 없습니다. 편집 : Andrzej Doyle의 대답은 당신을위한 길입니다.
Anders Tornblad

4

나는 그것을 조사하려고했지만 대신 Remy Sharp의 jsconsole.com 을 사용 했습니다 (그는 또한 jsbin.com을 만들었습니다). Ubuntu 12.10에서 실행 중이므로 특별한 아이콘만들어야 했지만 Windows를 사용하고 Chrome을 사용하는 경우 도구> 응용 프로그램 바로 가기 만들기로 이동하십시오 (이 경우에는 잘 작동하지 않거나 전혀 작동하지 않습니다. 우분투에). 이 사이트는 Mac jsc콘솔 과 매우 유사하게 작동합니다 . 실제로 URL에서 라이브러리 / 코드를로드하는 것과 같은 멋진 기능도 jsc있습니다.

도움이 되었기를 바랍니다.



2

모든 답변은 위의 I 누락 한 가지를 확인하고 실행 고려 될 수있다, 중대하다 javascripts(*.js)파일의 무관 의 형제 javascriptJava.

JDK실행을 위해 활용 될 수있는 두 가지 멋진 도구가 제공됩니다 javascripts. 명령은 다음과 같습니다. 로 이동하십시오 JDK\bin.

 jjs example.js

이것 commmand과 같은 다른 도구가 등장합니다.

 jrunscript example.js

나는 이것이 다른 사람들에게 도움이되기를 바랍니다.


1

이것은 "라운드"솔루션이지만 ipython을 사용할 수 있습니다

터미널에서 ipython 노트북을 시작하십시오.

$ ipython notebook

자바 스크립트를 실행할 수있는 브라우저에서 열립니다

여기에 이미지 설명을 입력하십시오


0

또한 사용할 수있는 phantomjs시스템에 따라 다운로드 phantomjs을에서 (내 경우는 최대 OSX입니다) phantomjs.org 당신의 자바 스크립트 파일의 상단에 phantomjs 설치 폴더의 경로를 넣어해야합니다 우선은. 예. #!./bin/phantomjs코드를 저장하십시오. 자바 스크립트가 저장된 터미널로 이동하여 다음을 사용하여 실행할 수 있습니다.> phantomjs filename.js


0

기술적으로 Node.jsDOM (Document Object Model) 이 없기 때문에 알고있는 JavaScript가 아닙니다 . 예를 들어, 브라우저에서 실행되는 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

bash를 통해 js 파일을 실행하려면 다음을 입력하십시오. $ node filename.js

이것은 파이썬에서와 비슷합니다. $ python filename.py

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.