rcmdnk's blog

Spidermonkey

JavaScriptは主にこのブログのために使ったりするくらいですが、 ちょっとしたテストをターミナル上でちゃっちゃとテストしたい時に 使えるものについて。

Sponsored Links

jsc

Mac限定ですが、Macにはjscというコマンドが入っています。

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

ここへはパスが通ってないので、以下の様な 設定を.bashrcを書いておくとjscコマンドが使えるようになります。

if [[ "$OSTYPE" =~ darwin ]];then
  jscpath="/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources"
  if [ -f $jscpath/jsc ];then
    export PATH=$PATH:$jscpath
  fi
fi

対話インタプリタ:

$ jsc
>>> print('Hello World!');
Hello World!
undefined
>>> // C-d to exit
$

Shebangとして使用:

hello.js
1
2
#!/usr/bin/env jsc
print('Hello World!');

みたいなファイルを用意して

$ chmod 755 hello.js
$ ./hello.js
Hello World!

コマンドにファイルを渡して実行:

$ jsc hello.js
Hello World!

ただし、この場合は上のhello.jsのShebang部分が無くてもOK。

SpiderMonkey

SpiderMonkey MDN

C言語で実装されたJavaScriptエンジン。 Mozilla Fundationでメンテされてます。

MacではHomebrewで

$ brew install spidermonkey

Linuxとかでは

$ sudo apt-get source libmozjs-dev

等、libmozjs-devというパッケージになっているので注意。 (昔はspidermonkey-binというのがあったらしい。)

これをインストールするとjsというコマンドが使えるようになります。

簡単な使い方は上のjscと同じ。

Rhino

Rhino - Mozilla MDN

こちらもMozilla Fundation管理のソフト。 こちらはJavaで実装されています。

MacではHomebrewで

$ brew install rhino

Linuxとかでは

$ sudo apt-get rhino

これでrhinoというコマンドが使えるようになります。

(何故か今Homebrewでインストールしようとするとダウンロードに失敗して 上手く行きません。該当するURLをwgetとかすると普通に取れるので、 何かHomebrewの中で上手く行ってないみたいなんですが。。。)

これも簡単な使い方は上のjscと同じ。

Node.js

Node.js

サーバーサイドでJavaScriptで色々しようとする時に使う JavaScript環境。

インストールはMacでは

$ brew install node

Linuxとかでは

$ sudo apg-get node npm

等で。(npmはモジュール管理ツール。Homebrewではデフォルトでnodeをインストールする際 自動で一緒にインストールされます。)

インストールするとnodeというコマンドが使えるようになります。

nodeも 対話インタプリタやShebangにしたりして使えますが、 使えるものが少し違います。

printは使えず、

console.log('Hello World');

consoleオブジェクトをブラウザみたいに使ったりします。

var sys = require('sys');
sys.print('Hello World');

みたいにsysprintを使う事も出来ます。

出力コマンド切り替え

下みたいにすると、色々な環境の出力コマンドを切り替えることが出来ます。

1
2
3
4
5
6
7
if (typeof console === 'object') {
    console.log('Hello, World!');
} else if (typeof document === 'object') {
    document.write('Hello, World!');
} else {
    print('Hello, World!');
}

Hello, World! - Example for versions Rhino 1.6, SpiderMonkey 1.7 - Progopedia - Encyclopedia of Programming Languages

まとめ

それぞれ色々使い道によって必要な物が変わると思いますが、 取り敢えずMacならjscが最初から入ってるのでぱっと使うには楽です。

後はnodeが入ってればそれでもいいし、 無ければ適当に好きなモノを入れて、と言う感じで。

本格的に使うときは必要な物を。

Sponsored Links
Sponsored Links

« ユーザー権限で必要なパッケージをローカルインストールするまとめスクリプト Anker Astro E1モバイルバッテリーがまた値下げしてる。。。 »