在Ubuntu上获得spidermonkey js的最佳方法?

时间:2011-07-11 21:35:23

标签: javascript ubuntu spidermonkey

我需要在我的工作机器上安装Spidermonkey JS引擎。我正在处理的项目有一个jslint脚本,需要Spidermonkey或类似的js二进制文件。我已经尝试从源代码编译Spidermonkey并陷入依赖地狱。我尝试从ubuntu存储库安装rhino软件包,结果很慢而且坏了。今天早上,我成功编译了Google的V8引擎,并按照此处的说明构建了v8jslint:

http://blog.stevenreid.co.uk/2011/06/27/jslint-command-line-tool-powered-by-v8/

v8jslint有效,但一次只能打印一个文件。例如,

$ v8jslint foo/*.js

如果我在foo下有a.js,b.js和c.js,v8jslint只会lint a.js.轻松修复:我可以为此编写一个bash脚本。更大的问题是v8jslint与我们的构建服务器上的Spidermonkey jslint不兼容。有没有人在最近的Ubuntu版本上构建Spidermonkey,或者知道一个好的解决方法?

5 个答案:

答案 0 :(得分:18)

你可以从源代码构建,但是在ubuntu上仍然可以使用蜘蛛猴,它只是renamed to "libmozjs"。安装“libmozjs-24-bin”然后将其称为“js24”或将symlink / usr / bin / js24称为“js”,如下所示:

sudo apt-get install libmozjs-24-bin; sudo ln -sf /usr/bin/js24 /usr/bin/js

答案 1 :(得分:16)

修正了它。你需要'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 /中。我只是symlinked / bin / js指向〜/.../ mozilla / js / src / js。 Lint脚本现在工作,我不必再开始构建来修复lint错误了:P

来源:

https://developer.mozilla.org/en/SpiderMonkey_Build_Documentation

注意:上面的链接调用命令autoconf-2.13。我认为这是一个错字;你想在我的代码中使用autoconf2.13

答案 2 :(得分:6)

更新

通过启动板ppa看起来像spidermonkey-bin不再可用

当我试图克隆它时,

加上v8jslint repo失败了。

答案 3 :(得分:5)

此外,(通过#2: spidermonkey-bin not availble in Ubuntu Lucid - Issues - hallettj/jslint.vim - GitHub )可以使用PPA for Launchpad Engineering : “Canonical Launchpad Engineering” team

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
$

答案 4 :(得分:3)

安装包libmozjs-24-bin。它包含Spidermonkey JavaScript shell二进制文件/usr/bin/js24,您可以将其作为命令js的替代方法安装。

sudo apt-get install libmozjs-24-bin
sudo update-alternatives --install /usr/bin/js js /usr/bin/js24 10