브라우저없이 JavaScript를 실행 하시겠습니까?


129

브라우저없이 Javascript 프로그래밍을 찾고 있습니다. 다른 스크립팅 언어 (ruby, php, perl, python ...)를 실행하는 것처럼 Linux 또는 Mac OS X 명령 행에서 스크립트를 실행하고 싶습니다.

$ javascript my_javascript_code.js

거미 원숭이 (Mozilla)와 v8 (Google)을 살펴 보았지만 둘 다 내장 된 것으로 보입니다.

Javascript를 스크립트 언어로 사용하여 명령 행에서 실행하는 사람이 있습니까?

누군가 내가 왜 이것을 조사하고 있는지 궁금하다면 node.js 주위를 파고 들었습니다 . node.js의 성능으로 인해 javascript가 큰 데이터를 처리하기위한 실용적인 스크립팅 언어인지 궁금합니다.


node.js는 자바 스크립트 명령 줄 해석기입니까?
Nathan

5
node.js는 인터프리터가 아니며 Google의 V8 자바 스크립트 구현을 기반으로하는 비동기 프레임 워크입니다. 비록 V8의 자바 스크립트 인터프리터가 노드 설치에 포함되어 있다고 생각하지만

1
V8의 CLI 인터프리터가 대중화되면 정말 훌륭한 교육 도구가 될 수 있습니다. JavaScript로 프로그래밍하는 법을 배우는 것은 꽤 재미있을 수 있다고 생각합니다. 루아가 정직하게 최선의 선택이 될 수도 있지만 (JS의 "클래스"는 모든 사람들을 혼란스럽게합니다) 웹에서 던질 수있는 JS의 능력은 어설프게도 사람들에게 어필 할 것입니다. 이 V8 CLI를 직접 사용해 볼 수 있습니다.
jasonmp85

새로운 키워드로 함수를 실행하는 @ jasonmp85는 객체 인스턴스를 만듭니다. 인스턴스에서 속성 / 메소드를 참조 할 때 객체 자체에없는 경우 생성자 함수의 프로토 타입 속성이 검사됩니다. 공개 메소드에 이것을 사용하고 생성자 함수에 로컬 변수를 정의하여 비공개 메소드 / 프로 프를 효과적으로 얻습니다 (기술적으로 클로저 참조 변수입니다). 끝.
Erik Reppen

답변:


46

주제 와 관련 하여이 관련 질문 을 찾았 지만 직접 링크를 원하면 다음과 같습니다.

  • 다른 사람들이 지적했듯이 Rhino를 설치할 수 있습니다. 이 게시물 은 쉽게 시작하고 실행하는 방법과 명령을 쉽게 호출하기 위해 별칭을 지정하는 방법을 보여줍니다
  • Mac을 사용하는 경우 WebKit의 JavaScript 엔진을 호출하는 JavaScriptCore를 사용할 수 있습니다. 여기에 게시물 이 있습니다
  • Chome / Google의 V8 인터프리터도 사용할 수 있습니다. 여기에 지침이 있습니다
  • OSA로서의 JavaScript는 (AFAIK) 마치 AppleScript에있는 것처럼 스크립트 가능한 OS X 앱과 상호 작용할 수 있기 때문에 흥미 롭습니다 (끔찍한 구문없이).

node.js에 쉘이 포함되어 있지 않다는 것에 놀랐지 만 실제로는 epoll / selector 기반 콜백 / 이벤트 지향 웹 서버와 비슷하기 때문에 전체 JS 기능 세트가 필요하지는 않지만 내부 작업에 익숙하지 않습니다.

node.js에 관심이 있고 V8을 기반으로하므로 V8 환경 설정에 대한 지시 사항을 따르는 것이 JavaScript 프로그래밍의 일관된 기초를 가질 수 있도록하는 것이 가장 좋습니다 (JSC와 V8이 대부분이기를 바랍니다) 동일하지만 확실하지 않습니다).


Chrome / Google V8 인터프리터 링크가 바로 내가 찾던 것입니다! 감사합니다!
Daniel

2
0.1.101의 NodeJS에는 환경에 대한 CLI 액세스를 제공하는 node-repl이 있습니다. JS 테스트 / 학습에 좋습니다.
CyberFonic

nodejs터미널 에 Ubuntu를 입력하면 nodejs v0.10.25를 통해 REPL에 액세스 할 수 있습니다.
Иван Бишевац

위의 어떤 것이 HTML DOM을 포함합니까?
Old Geezer

57

주요 답변

예, 질문에 대답하기 위해 브라우저없이 JavaScript를 명령 줄에서 "일반적인"스크립팅 언어로 사용할 수 있습니다. 다른 사람들은 아직 언급하지 않았으므로 언급 할 가치가 있음을 알았습니다.

데비안 기반 시스템에서 (그리고 여기에는 최소한 우분투, 리눅스 민트, aptosid / sidux가 포함됩니다) Rhino 설치 옵션과 이미 언급 된 다른 옵션 외에 다른 옵션이 있습니다 :

  • libmozjs-24-bin패키지를 설치하면 명령 행에 Mozilla Spider Spider 엔진이 단순하게 js24대화식 인터프리터로 사용될 수 있습니다. ( 24이름은에서 Firefox 24 버전에 해당함을 의미합니다).

  • libv8-dev패키지를 설치 하면 Google V8 엔진이 제공됩니다. 예를 들어 /usr/share/doc/libv8-dev/examples/shell.cc.gz압축을 풀고 컴파일 할 수 있는 파일 (예 :)이 있습니다 g++ -Os shell.cc -o shell -lv8.

  • 패키지를 설치하면 nodejs실행 파일 nodejs과 실행 파일 을 제공하는 데비안 (Debian-sense) 대안 으로 사용할 수 있습니다 js. JIT 컴파일은 V8에서 제공 한 것입니다.

  • 패키지를 설치하고 명령 행에서 libjavascriptcoregtk-3.0-binWebKit의 JavaScriptCore 인터프리터 ( jsc)를 일반 인터프리터로 사용하십시오. 그리고 이것은 Mac에 액세스 할 필요가 없습니다. 많은 플랫폼 (예 : x86 및 x86_64)에서이 인터프리터에는 JIT 컴파일러가 제공됩니다.

따라서 컴파일이 거의 없이도 세 가지 무거운 JavaScript 엔진을 자유롭게 사용할 수 있습니다.

추가

설치가 완료되면 #!/usr/bin/jsshebang 라인으로 파일을 만들면 됩니다.

$ 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!
$

23

iMac에 Node.js를 설치했으며

node somefile.js

bash에서 작동합니다.


세상에! @ aw04 절대적으로
theapache64

나를 위해 그것은 nodejs somefile.jsnodejs 패키지를 설치 한 이래로
user2490003

이것은 2019 년의 정답입니다. Node.JS는 항상 가장 보편적이고 가장 간단한 방법입니다.
wilsonhobbs

10

나는 당신이 리눅스와 Mac에 관해 물었다는 것을 알고있다. Windows에 관심이있는 다른 사람들이 귀하의 질문을 찾은 경우 Windows에 대한 답변을 제공 할 것입니다.

Windows에는 명령 줄에서 사용할 수있는 Javascript 엔진이 포함되어 있습니다.

Windows 98부터 모든 Windows 버전에는 " The Windows Script Host " 가 포함되어 있습니다. 스크립트 "엔진"을 지원하는 Windows 표준 방법입니다. 첫 번째 릴리스 이후 WSH는 Microsoft의 Javascript 버전 인 JScript를 지원합니다. 무엇보다도 이것은 Windows 명령 행에서 * .js 파일의 이름을 호출하면 JScript 엔진에서 실행됩니다. (wscript.exe 또는 cscript.exe를 통해)

이 질문을 볼 수 있습니다 . cscript.exe에서 고성능 IE9 Javascript 엔진을 호출하는 방법을 배우려면 IE9의 Javascript 엔진 (코드 명 "Chakra") 용 ProgId 또는 CLSID 란 무엇입니까?


8

Java 1.6 이후 Java JDK에는 JavaScript 명령 줄과 REPL도 함께 제공됩니다.

Rhino를 기반으로합니다 : https://developer.mozilla.org/en/docs/Rhino

Java 1.6 및 1.7에서이 명령은 jrunscript( jrunscript.exeWindows에서) 호출 되며 JDK의 bin 폴더에서 찾을 수 있습니다.

Java 1.8부터 새로운 JavaScript 구현이 번들로 제공됩니다 (Nashorn : https://blogs.oracle.com/nashorn/ )

따라서 Java 1.8에서는 명령이 jjs( jjs.exeWindows에서는)


6

FWIW, node.js는 쉘과 함께 제공됩니다.

node-repl

node.js를 설치하면 실제로 작동합니다. 잘 작동하도록 rlwrap을 설치하는 것이 표준입니다.


Node-Spl을 사용하고 해시 뱅을 사용하면 NodeJS로 빠른 프로그램을 얻는 데 매우 좋습니다. 빠르고 사용하기 쉽습니다.
CyberFonic

3

Rhino 를 확인하고 싶을 수도 있습니다 .

Rhino Shell은 배치 모드에서 JavaScript 스크립트를 실행하는 방법을 제공합니다.

java org.mozilla.javascript.tools.shell.Main my_javascript_code.js [args]

3

나는 이것이 오래 되었다는 것을 알고 있지만 Zombie.js 도 시도해야합니다 . 엄청나게 빠르고 테스트에 이상적인 헤드리스 브라우저!


3

커맨드 라인에서 Ubuntu 12.10 및 js를 사용합니다.

Java를 설치하면 사용할 수 있습니다.

el@apollo:~/foo$ java -version
java version "1.6.0_27"
el@apollo:~/foo$ which js
/usr/bin/js

몇 가지 예 :

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!' ]

하늘이 한계입니다. 계속 진행하십시오.



2

나는 duktape 라는 C로 완전히 작성된 멋진 오픈 소스 ECMAScript 호환 JS 엔진을 발견했습니다.

Duktape는 이식성과 컴팩트 한 풋 프린트에 중점을 둔 임베디드 자바 스크립트 엔진입니다.

행운을 빕니다!



1

Linux, Windows 및 Mac에서 사용할 수있는 JSDB 는이 법안에 잘 맞아야합니다. 그것은 Mozilla의 Spidermonkey Javascript 엔진을 사용하며 node.js (적어도 지난 몇 년 전에 node.js를 시도했을 때)에 비해 설치하기가 쉽지 않습니다.

이 흥미로운 자바 스크립트 셸 목록에서 JSDB를 찾았습니다 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells

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