作業用マシンにSpidermonkeyJSエンジンをインストールする必要があります。私が取り組んでいるプロジェクトには、Spidermonkeyまたは同様のjsバイナリを必要とするjslintスクリプトがあります。私はソースからSpidermonkeyをコンパイルしようとしましたが、依存関係地獄で立ち往生しました。 ubuntuリポジトリからrhinoパッケージをインストールしようとしましたが、遅くて壊れていることがわかりました。今朝、私はGoogleのV8エンジンを正常にコンパイルし、次の手順に従ってv8jslintをビルドしました。
http://blog.stevenreid.co.uk/2011/06/27/jslint-command-line-tool-powered-by-v8/
v8jslintは機能しますが、一度に1つのファイルしかリントしません。例えば、
$ v8jslint foo/*.js
fooの下にa.js、b.js、c.jsがある場合、v8jslintはa.jsのみをリントします。簡単な修正:このためのbashスクリプトを書くことができます。より大きな問題は、v8jslintがビルドサーバー上のSpidermonkeyjslintと互換性がないことです。誰かが最近のバージョンのUbuntuでSpidermonkeyを構築することに成功したか、または良い回避策を知っていますか?
ソースからビルドすることもできますが、クモザルはubuntuで引き続き利用できます。これは、 「libmozjs」に名前が変更されました です。 「libmozjs-24-bin」をインストールしてから、「js24」と呼ぶか、/ usr/bin/js24を「js」にシンボリックリンクします。
Sudo apt-get install libmozjs-24-bin; Sudo ln -sf /usr/bin/js24 /usr/bin/js
修正しました。 'autoconf2.13'パッケージが必要です。 apt-getでインストールしてください。 MozillaのSpiderMonkeyソースコードページに移動します。 hgリポジトリ(以下にリンク)を見つけて、Mozillaツリーのスナップショットをダウンロードします。クローンを作成せず、トップバーからアーカイブを.tar.gzまたは.tar.bz2として取得します。
http://hg.mozilla.org/index.cgi/mozilla-central/file/tip
アーカイブを解凍し、ルートディレクトリにcdします。
$ cd js/src
$ autoconf2.13
$ ./configure
$ make
これにより、jsというバイナリが作成されます。何らかの理由で、make installを実行したときに、jsが/ bin /にコピーされませんでした。/bin/jsをシンボリックリンクして、〜/ .../Mozilla/js/src/jsをポイントします。 Lintスクリプトが機能するようになり、lintエラーを修正するためにビルドを開始する必要がなくなりました:P
ソース:
https://developer.mozilla.org/en/SpiderMonkey_Build_Documentation
注:上記のリンクでは、コマンドautoconf-2.13
が必要です。これはタイプミスだと思います。私がコードで書いたように、あなたはautoconf2.13
を使いたいと思います。
更新:
spidermonkey-binはlaunchpadppaから利用できなくなったようです
さらに、v8jslintリポジトリを複製しようとすると、ダウンしていました。
また、(via #2:spidermonkey-bin not available in Ubuntu Lucid --Issues --hallettj/jslint.vim --GitHub )、使用できます Launchpad EngineeringのPPA:「CanonicalLaunchpadEngineering」チーム :
Sudo add-apt-repository ppa:launchpad/ppa
Sudo apt-get update
Sudo apt-get install spidermonkey-bin
apt-cache show spidermonkey-bin
Sudo apt-get install spidermonkey-bin # also installs extra: libmozjs2d
# .. and then:
$ js --help
JavaScript-C 1.8.0 pre-release 1 2007-10-03
usage: js [-zKPswWxCij] [-t timeoutSeconds] [-c stackchunksize] [-o option] [-v version] [-f scriptfile] [-e script] [-S maxstacksize] [scriptfile] [scriptarg...]
$ js
js> var f = function(){ print("the answer is " + 42); };
js> f();
the answer is 42
js> ^C
$
パッケージをインストールしますlibmozjs-24-bin
。 SpidermonkeyJavaScriptシェルバイナリが含まれています/usr/bin/js24
コマンドjs
の代わりにインストールできます。
Sudo apt-get install libmozjs-24-bin
Sudo update-alternatives --install /usr/bin/js js /usr/bin/js24 10