Автономный запуск движка Javascript V8

128

Я хочу запустить консоль Javascript поверх V8. Как мне это сделать?

Мануэль
источник

Ответы:

115

V8 легко построить и не требует дополнительных затрат на виртуальную машину Java из-за автономного интерпретатора Javascript Mozilla. К счастью, V8 ​​поставляется с кодом для создания консоли. Вот как это построить:

$> svn co http://v8.googlecode.com/svn/trunk v8-ствол
...
$> cd v8-багажник
$> бра
$> g ++ ./samples/shell.cc -o v8-shell -I include libv8.a 

Теперь у нас есть отдельный двоичный файл v8-shell.

Запускаем консоль:

$> ./v8-shell 
V8 версии 2.0.2
> var x = 10;
> х
10
> функция foo (x) {return x * x; }
> фу
функция foo (x) {return x * x; }
> выйти ()

Выполнение Javascript из командной строки:

$> ./v8-shell -e 'print ("10 * 10 =" + 10 * 10)'
10 * 10 = 100

В справке задокументировано множество других функций:

$> ./v8-shell --help
Использование:
...
Георг Шёлли
источник
9
Спасибо за подсказку и подробные инструкции. Мне пришлось добавить эту опцию -lpthreadв g++команду в ubuntu 10.04.
интуитивно понятен
1
scons не удалось для меня на Ubuntu, но запуск sudo apt-get install libc6-dev-i386 решил это.
Торстен Лоренц
2
и если вы используете x86_64, выполните команду
EdH
4
Обратите внимание, что эта оболочка v8 предназначена для использования в качестве игрушечного примера. Называется "настоящая" оболочка v8 d8. См. Мой ответ для получения дополнительной информации.
букзор
2
Похоже, что метод получения исходного кода изменился. Смотрите здесь .
Colliot 04
59

Чтобы создать консоль разработчика, а не пример игрушечного приложения «оболочка», скопируйте и вставьте приведенные ниже команды в свой терминал.

sudo apt-get install subversion scons libreadline-dev
svn co http://v8.googlecode.com/svn/trunk v8
cd v8/
scons console=readline d8

Эта инструкция будет работать для Ubuntu / Debian с «общим» ядром. Для других дистрибутивов вам нужно будет заменить команду apt-get любым доступным у вас пакетным инструментом. В 64-битных системах вам может потребоваться добавить arch=x64. Эта console=readlineопция включает систему чтения , чтобы она больше походила на стандартную оболочку.

Более полная документация здесь: http://code.google.com/apis/v8/build.html.


Примечание:

введите описание изображения здесь

См. Также: Сборка v8 с помощью GYP

букзор
источник
9
Мне пришлось добавить arch=x64для сборки на 64-битной Ubuntu.
projectshave
@Hugh: Он включает систему чтения; это то, что позволяет вам использовать стрелку вверх для получения предыдущей команды, помимо других тонкостей.
букзор 07
После завершения сборки запустите оболочку, введя ./d8.
Матиас Байненс,
на ubunt 12.04: фатальная ошибка: readline / readline.h: Нет такого файла или каталога - есть идеи?
pguardiario 01
44

Как насчет запуска V8 Javascript через командную строку с помощью node.js ?

node.js использует v8 в качестве движка и добавляет к нему множество функций.


Например, в Mac OSX, если у вас установлен Homebrew , просто введите:

    $ brew install node
    $ node
    > 
tle
источник
1
IMHO node.js - это новый стандарт де-факто, когда речь идет о консолях JavaScript. Он использует v8 и, вероятно, является лучшим вариантом для этого.
Tracker1
23

В Mac OS X обязательно brewустановили. Затем просто запустите команду (sudo) brew install v8, в зависимости от вашей машины это может занять некоторое время. Чтобы запустить консоль V8, просто запустите v8- Voilà!

Совет: чтобы выйти из консоли, просто запустите quit()и не забудьте круглые скобки!

Марио Угер
источник
1
Или просто нажмите, Ctrl-Dчтобы выйти :)
Dogbert
Или Ctrl-Cубить его
Брейден Бест
Вы можете собрать v8 самостоятельно, и это достаточно просто, использование brew слишком громоздко.
b01
4
Насколько утомительно «brew install v8»?
Деван Баггей
5

Я думаю, это могло измениться. Я прочитал руководство и собрал v8 вот так:

moose@pc08$ svn co http://v8.googlecode.com/svn/trunk v8-trunk
moose@pc08$ cd v8-trunk
moose@pc08$ make dependencies
moose@pc08$ make ia32.release

добавлен export PATH=${PATH}:/home/moose/Downloads/v8-trunk/out/ia32.releaseв мой .bashrc

moose@pc08 ~ $ source ~/.bashrc
moose@pc08 ~ $ d8 A_tic_tac_toe_Tomek.js < A-small-practice.in

(С javascript от aditsu и A-small-practice.in от Google Code Jam)

Мартин Тома
источник
2
Страница, полная ответов, и ваша, наименее уважаемая, содержит последний совет, в котором я нуждался.
Сет Дифли
4

После выполнения инструкций по сборке ( Google V8 Build Docs ) для вашей системы;

[v8 directory]$ cd out/native
[v8 directory]$ ./shell (sample shell)
[v8 directory]$ ./d8 (console: dumb)

Я создал псевдоним в моем .bash_profile, чтобы облегчить вызов оболочки.

alias v8='/Volumes/Dev/GitHub/v8/out/native/shell'

Ввод v8 в CLI (в новом терминале или оболочке - для перезагрузки профиля bash) дает оболочку v8. JavaScript в командной строке! :)

Джо Джонсон
источник
3

Если вы используете ArchLinux, вы можете использовать его pacman -S v8для его установки. Затем используйте, d8чтобы запустить его в своей оболочке. Наслаждайся этим.

alswl
источник
1
Это похоже на AUR, поэтому его нельзя установить с помощью pacman.
Colliot 04
3

Если вы хотите запустить исходный код javascript с помощью движка v8 или любой его версии, вы можете использовать инструмент командной строки jsvu . Он разработан и поддерживается инженерами Google и, кроме того, предлагает возможность установки других движков javascript, кроме v8 , таких как spidermonkey , chakracore , javascriptcore и xs .

sgeorgiou
источник
2

Если вы планируете встроить V8, то непременно создайте его и играйте с «d8».

С другой стороны, если вы не планируете расширять V8 или рассматривать его как необязательный, просто используйте Node.JS. Не беспокойтесь о чистом V8.

Node.js имеет действительно богатый ввод-вывод, расширения, библиотеки (такие как Perl CPAN, Python Eggs, Ruby Gems) и сообщество.

Арканзас
источник
Вам не нужно использовать node.js, это просто оболочка и дополнительная зависимость.
b01