我在想(实际上我知道肯定有这样一种方式在命令行中运行js,因为当我观看谷歌I / 0演示时,他们使用像d8这样的命令,也许它是V8引擎的一部分)在那里在命令行中运行/调试我的javascripts的任何方法?比如d8 myJsfile.js --prof
等?
有人对此有任何想法吗?
答案 0 :(得分:3)
是的,D8是一个命令行工具,允许您运行和调试Javascript脚本。它配备了V8。
在你的机器上安装V8并不难。请遵循以下说明: https://developers.google.com/v8/build
(GYP的部分看起来有点乱,但我在Linux机器上轻松搞定了。)
安装了V8后,您现在拥有了d8,它允许您从命令行运行javascript。
$ d8 myscript.js
查看d8 --help
的分析选项。这些与您在Chrome上使用性能分析时可以使用的选项非常相似。
如果要使用--debugger
调试start d8。当脚本在代码中遇到语句debugger;
或在d8 shell中键入debugger;
时,脚本将会中断。 (通过使用--shell
启动d8来获取shell。)当shell提示符从d8>
转到dbg>
时,您知道正在调试。要在help
提示符下获得调试器类型dbg>
的帮助。
d8调试器是一个旧式的命令行调试器,如果您习惯使用GUI调试器,那么在大型复杂脚本上使用它会很痛苦。
如果您想使用GUI调试器,可以使用Chrome DevTools for Java,其中包括Eclipse调试器:
https://code.google.com/p/chromedevtools/
让它运作起来:
调试在D8中运行的代码:
debugger;
个语句。)请注意! D8仅侦听localhost上的调试器。所以如果你在一台单独的机器上,那么这将无法工作。没有标志可以让它在另一个IP上侦听。看到: https://code.google.com/p/v8/issues/detail?id=1855
请注意,D8中的Javascript环境与浏览器窗口中的Javascript环境不同。您无法使用许多功能:
请记住,没有window.*
或document.*
或DOM!
答案 1 :(得分:2)
Node.JS对此非常有用。
您将无法测试浏览器内容,例如window.location
以及其他内容,但是对于运行直接脚本,它会很有帮助。