是的,D8 是一个命令行工具,可让您运行和调试 Javascript 脚本。它配备了 V8。
获得 D8
在您的机器上安装 V8 并不难。请按照以下说明操作:
https ://developers.google.com/v8/build
(GYP 的部分看起来有点乱,但我在 Linux 机器上轻松完成了它。)
安装 V8 后,您现在拥有 d8,它允许您从命令行运行 javascript。
$ d8 myscript.js
使用 D8
查看d8 --help
分析选项。这些与您想在 Chrome 上使用分析时可以使用的选项非常相似。
如果你想调试启动 d8 --debugger
。当脚本遇到代码中的语句或在 d8 shell 中debugger;
键入时,脚本将中断。debugger;
(您可以通过以 d8 开头来获得 shell 。)当 shell 提示符从变为--shell
时,您知道您正在调试。在提示符处获取有关调试器类型的帮助。d8>
dbg>
help
dbg>
d8 调试器是一个老式的命令行调试器,如果您习惯于 GUI 调试器,在大型复杂脚本上使用它会很痛苦。
使用带有 D8 的 GUI 调试器
如果你想使用 GUI 调试器,你可以使用 Chrome DevTools for Java,它包括一个 Eclipse 调试器:
https://code.google.com/p/chromedevtools/
让它工作:
- 安装 Eclipse
- 安装 ChromeDevTools 插件(我从这个视频中得到了帮助:http ://www.youtube.com/watch?v=_uzSw_fb7NQ )
- 创建一个类型为“Standalone V8 VM”的新调试配置,为连接参数设置 host:localhost 和 port:5858。
要调试在 D8 中运行的代码:
- 使用您的脚本和 --debugger_agent 启动 D8,必要时根据您的配置使用 --debugger_port;D8 的默认端口是 5858。
- 在 Eclipse 中启动您在上面创建的调试配置。脚本将显示在界面中
- 在 Eclipse UI 中设置断点并设置断点。(您的代码中不需要
debugger;
语句。)
笔记!D8 只监听本地主机上的调试器。因此,如果您在单独的机器上,那么这将不起作用。没有标志可以让它在另一个 IP 上侦听。请参阅:
https ://code.google.com/p/v8/issues/detail?id=1855
在 D8 中运行 Javascript 的陷阱
请注意,D8 中的 Javascript 环境与浏览器窗口中的环境不同。您无法使用许多功能:
- setTimeout 及其表兄弟
- XMLHttpRequest
- 还有更多。检查 ECMA 规范以了解您实际可以使用的内容。
记住没有window.*
or document.*
or DOM!