在phpStorm 7中调试命令行NodeJS脚本

时间:2013-11-12 11:52:10

标签: node.js phpstorm

我有一个NodeJS脚本,用于在命令行上执行,ala是一个shell脚本。

我想在phpStorm 7中调试我的脚本但是调试器只是坐在那里而不调试我的脚本。

脚本:

#!/usr/bin/env node

var fs = require("fs");

....

phpStorm调试控制台输出:

/opt/local/bin/node --debug-brk=51096 main.js
debugger listening on port 51096

阅读http://www.jetbrains.com/phpstorm/webhelp/running-and-debugging-node-js.html似乎NodeJS插件偏向于Web应用程序,因为大多数指令都包含类似

的行
copy the URL address at which the application is running.

在这种背景下没有意义。

我可以通过NodeJS运行配置运行脚本,但我无法调试。

有什么我做错了,或者这是插件的错误?

更新

回答lena's个问题:

  • OS是OSX Snow Leopard
  • Java版本为1.6.0_51
  • NodeJS版本为v0.10.19
  • IDE构建是phpStorm 7 build 131.374
  • NodeJS插件版本131.488

我查看了the link lena mentioned并且我确实遇到了类似的问题,因为调试器已启动但未启动应用程序(请参阅上面的控制台日志输出)。在WebStorm 7.0.1中为该用户修复了该问题。如果将修复程序合并到代码库中,则可能会在phpStorm的某个版本中修复此问题。

最后,我知道在phpStorm web帮助中提到浏览器是一个红色的鲱鱼,也许应该更新文档以适应没有Web组件的NodeJS脚本的运行/调试。 / p>

3 个答案:

答案 0 :(得分:2)

我的PhpStorm7与Mac(Marverick)也有同样的问题,即node.js调试器无法启动应用程序。 并且,重新启动调试器会导致IDE致命错误,如下所示。

com.intellij.javascript.debugger.impl.JSDebugProcess.getBrowserName()Ljava/lang/String;: com.intellij.javascript.debugger.impl.JSDebugProcess.getBrowserName()Ljava/lang/String;
java.lang.AbstractMethodError: com.intellij.javascript.debugger.impl.JSDebugProcess.getBrowserName()Ljava/lang/String;
    at com.intellij.javascript.debugger.scripts.ScriptManager.getBrowserName(ScriptManager.java:52)
    at com.intellij.javascript.debugger.scripts.RootScriptsNode.buildChildren(RootScriptsNode.java:24)
    at com.intellij.ui.treeStructure.CachingSimpleNode.getChildren(CachingSimpleNode.java:36)
    at 

这个致命的错误会弹出错误报告窗口,但是“报告到JetBrains”按钮未启用,我输入了报告, 所以我无法向JetBrains报告这个问题。

我将phpStorm7安装到debian linux,但发生了相同的调试器问题。

现在我已经安装了Early Access Program PhpStorm 7.1。

http://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program

它有效!!,断点,步骤执行等都没问题。

答案 1 :(得分:0)

我也在使用PhpStorm7运行Mac(Maverick)并遇到同样的问题。当我尝试调试NodeJS项目时,它说调试器正在监听但我的应用程序似乎永远不会启动或在某些情况下经过多次尝试后我得到上述错误(“com.intellij.javascript.debugger.impl.JSDebugProcess.getBrowserName ()“)。无论天气如何,我们正在谈论一个简单的命令行应用程序或为提供Web服务而编写的应用程序,应用程序根本无法调试节点应用程序。我会试试7.1。只是想我会添加到那里的数据集,这似乎表明这是一个真正的软件错误,而不是用户错误。

答案 2 :(得分:0)

唯一有帮助的是降级到PhpStorm 6。 我现在有两个版本:7个用于开发,6个用于调试node.js