我想在 V8 之上运行一个 Javascript 控制台。我该怎么做呢?
9 回答
V8 易于构建,并且没有来自 Mozilla 的独立 Javascript 解释器的 Java VM 开销。幸运的是,V8 附带了用于构建控制台的代码。以下是如何构建它:
$> svn co http://v8.googlecode.com/svn/trunk v8-trunk ... $> cd v8-trunk $> 司康 $> g++ ./samples/shell.cc -o v8-shell -I 包括 libv8.a
现在,我们有一个独立的二进制文件,名为v8-shell
.
运行控制台:
$> ./v8-shell V8 版本 2.0.2 > 变量 x = 10; > x 10 > 函数 foo(x) { 返回 x * x; } > 富 函数 foo(x) { 返回 x * x; } > 退出()
从命令行执行 Javascript:
$> ./v8-shell -e 'print("10*10 = " + 10*10)' 10*10 = 100
帮助中记录了更多功能:
$> ./v8-shell --help 用法: ...
要构建开发者控制台,而不是示例“shell”玩具应用程序,请将以下命令复制粘贴到您的终端。
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
选项启用readline系统,使其感觉更像一个标准外壳。
更完整的文档在这里: http ://code.google.com/apis/v8/build.html
笔记:
另请参阅:使用 GYP 构建 v8
在 Mac OS X 上一定要brew
安装。然后只需运行命令(sudo) brew install v8
,这可能需要一些时间,具体取决于您的机器。要启动 V8 控制台,只需运行v8
- Voilà!
提示:要退出控制台,只需运行quit()
并且不要忘记括号!
我认为这可能已经改变。我阅读了手册并像这样构建 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
(使用来自aditsu的 javascript和来自 Google Code Jam 的 A-small-practice.in)
按照您的系统的构建说明(Google 的 V8 构建文档)进行操作后;
[v8 directory]$ cd out/native
[v8 directory]$ ./shell (sample shell)
[v8 directory]$ ./d8 (console: dumb)
我在 .bash_profile 中创建了一个别名以方便调用 shell。
alias v8='/Volumes/Dev/GitHub/v8/out/native/shell'
在 CLI 中键入 v8(在新的终端或 shell 中——以重新加载您的 bash 配置文件)会生成 v8 shell。命令提示符下的 JavaScript!:)
如果你使用 ArchLinux,你可以使用pacman -S v8
它来安装它。然后使用d8
在你的shell中启动它。好好享受。
如果您想使用v8引擎或其任何版本运行您的 javascript 源代码,您可以使用jsvu命令行工具。它由 Google 工程师开发和维护,此外,它还提供了安装除v8之外的其他 javascript 引擎的功能,例如spidermonkey、chakracore、javascriptcore和xs。
如果您打算嵌入 V8,那么一定要构建它并使用“d8”。
另一方面,如果您不打算扩展 V8 或将其视为可选,那么只需使用 Node.JS。不要为纯 V8 烦恼。
Node.js 具有真正丰富的 I/O、扩展、库(如 Perl CPAN、Python Eggs、Ruby Gems)和社区。