是的,D8 是一个命令行工具,可让您运行和调试 Javascript 脚本。它带有 V8。
获得 D8
在您的机器上安装 V8 并不难。请遵循以下说明:
https://developers.google.com/v8/build
(带有 GYP 的部分看起来有点乱,但我在 Linux 机器上轻松完成了。)
安装 V8 后,您现在拥有 d8,它允许您从命令行运行 javascript。
$ d8 myscript.js
使用 D8
查看d8 --help 以获取分析选项。这些选项与您想在 Chrome 上使用分析时可以使用的选项非常相似。
如果要调试,请使用--debugger 启动 d8。当脚本在代码中遇到debugger; 语句时,或者当您在d8 shell 中键入debugger; 时,脚本将中断。 (您通过使用--shell 启动d8 来获得shell。)当shell 提示符从d8> 变为dbg> 时,您知道您正在调试。要获得有关调试器的帮助,请在 dbg> 提示符下键入 help。
d8 调试器是一个老式的命令行调试器,如果您习惯于 GUI 调试器,在大型复杂脚本上使用它会很痛苦。
在 D8 中使用 GUI 调试器
如果您想使用 GUI 调试器,您可以使用 Chrome DevTools for Java,其中包括一个 Eclipse 调试器:
https://code.google.com/p/chromedevtools/
要让它工作:
调试在 D8 中运行的代码:
- 使用您的脚本和 --debugger_agent 和 --debugger_port 启动 D8(如有必要,请根据您的配置); 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.* 或 document.* 或 DOM!