【问题标题】:Debugging a command line NodeJS script in phpStorm 7在 phpStorm 7 中调试命令行 NodeJS 脚本
【发布时间】:2013-11-12 11:52:09
【问题描述】:

我有一个为在命令行上执行而设计的 NodeJS 脚本,也就是一个 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问题:

  • 操作系统是 OSX Snow Leopard
  • Java 版本为 1.6.0_51
  • NodeJS 版本为 v0.10.19
  • IDE 版本是 phpStorm 7 版本 131.374
  • NodeJS 插件版本 131.488

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

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

【问题讨论】:

  • 调试应该适用于 node.js cmd 应用程序 - 不使用浏览器没有任何区别。您使用什么 WebStorm 构建?你的操作系统是什么 - linux?请检查stackoverflow.com/questions/19565310/… - 看起来相似吗?
  • 我在尝试调试控制台应用程序时遇到了同样的问题。我什至有一次 IDE 异常,PHPStorm 告诉我 JavaScript 调试器崩溃了。
  • @lena 你能对此发表更多评论吗?我应该在 phpStorm 上开票吗?

标签: node.js phpstorm


【解决方案1】:

我的 Mac(Marverick) 的 PhpStorm7 也有同样的问题,即 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。

我在 debian linux 上安装了 PhpStorm7,但出现了同样的调试器问题。

现在我已经安装了抢先体验程序 PhpStorm 7.1。

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

有效!!,断点、分步执行等都没有问题。

【讨论】:

  • 我可以批准这个。我刚刚安装了 EAP 版本,它可以工作了!
  • PhpStorm 7.1 刚刚发布!
  • 它不再对我崩溃了...但是调试器无法正常工作...我在 console.log 语句上有一个断点,该语句被记录但调试器不会暂停程序.
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 升级到 PhpStorm 7.1
    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    相关资源
    最近更新 更多