Лучший способ получить js-паука на Ubuntu?

Мне нужно установить движок Spidermonkey JS на мою рабочую машину. В проекте, над которым я работаю, есть сценарий jslint, для которого требуется Spidermonkey или аналогичный двоичный файл js. Я пытался скомпилировать Spidermonkey из исходников и застрял в аду зависимостей. Я попытался установить пакет rhino из репозиториев Ubuntu, и это оказалось медленным и неработоспособным. Сегодня утром я успешно скомпилировал движок Google V8 и собрал v8jslint, следуя приведенным здесь инструкциям:

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

v8jslint работает, но анализирует только один файл за раз. Например,

$ v8jslint foo/*.js

если у меня есть a.js, b.js и c.js под foo, v8jslint будет анализировать только a.js. Простое исправление: я мог бы написать для этого bash-скрипт. Более серьезная проблема заключается в том, что v8jslint несовместим с jslint Spidermonkey на нашем сервере сборки. Кто-нибудь добился успеха в сборке Spidermonkey на последней версии Ubuntu или знает хороший обходной путь?


person ovrkenthousand    schedule 11.07.2011    source источник
comment
Могу я спросить, что вы подразумеваете под v8jslint, несовместимым с jslint Spidermonkey, пожалуйста?   -  person Steve    schedule 21.07.2011
comment
v8jslint не совместим с jslint Spidermonkey на нашем сервере сборки. То есть lint Spidermonkey будет ловить определенные ошибки, которые пропускает v8, и наоборот. Так что я не знаю, пройдет ли сборка, если у меня v8 и на сервере работает spidermonkey.   -  person ovrkenthousand    schedule 13.08.2011


Ответы (5)


Вы можете собрать из исходного кода, но паук-обезьяна по-прежнему доступен в 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
person easel    schedule 18.02.2015
comment
Спасибо за недавний ответ. - person Glenn McAllister; 31.03.2015
comment
@CameronTaggart Большое спасибо, я добавил ваш комментарий к ответу. - person iFreilicht; 21.04.2017

Починил это. Вам нужен пакет autoconf2.13. Установите его с помощью apt-get. Перейдите на страницу исходного кода SpiderMonkey в Mozilla. Найдите репозиторий hg (ссылка ниже) и загрузите снимок дерева Mozilla. Не клонируйте его, просто получите архив как .tar.gz или .tar.bz2 из верхней панели.

http://hg.mozilla.org/index.cgi/mozilla-central/file/tip

Разархивируйте архив и перейдите в корневой каталог.

$ 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, как я написал в коде.

person ovrkenthousand    schedule 12.07.2011
comment
Это не опечатка, в ArchLinux он действительно называется autoconf-2.13. Думаю, это зависит от вашего дистрибутива. - person Rob W; 14.02.2013

Обновить:

похоже, что spidermonkey-bin больше не доступен через ppa панели запуска

плюс репозиторий v8jslint не работал, когда я пытался его клонировать.

person scytale    schedule 15.11.2011

Кроме того, (через #2: spidermonkey-bin недоступен в Ubuntu Lucid - Проблемы - hallettj /jslint.vim — GitHub), можно использовать PPA для разработки Launchpad: «Canonical Launchpad Инженерная команда:

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
$
person sdaau    schedule 03.09.2011
comment
Я не вижу в списке спайдермонки-бин. Сбросили или я что-то пропустил? - person nealmcb; 18.11.2012
comment
@nealmcb Кажется, его удалили. - person drusepth; 23.11.2012

Установите пакет libmozjs-24-bin. Он содержит двоичный файл оболочки JavaScript Spidermonkey /usr/bin/js24, который можно установить вместо команды js.

sudo apt-get install libmozjs-24-bin
sudo update-alternatives --install /usr/bin/js js /usr/bin/js24 10
person thrau    schedule 26.02.2016