Автономный запуск движка 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
    > 

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чтобы запустить его в своей оболочке. Наслаждайся этим.


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

3

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


2

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

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

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


Вам не нужно использовать node.js, это просто оболочка и дополнительная зависимость.
b01
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.