IntelliJ IDEA如何正确地将$ NODE_DEBUG_OPTION传递给npm-run-all

在我的Ubuntu 16.04上,我将IntelliJ IDEA ultima 2017.2节点v6.11.2npm v3.10.10一起使用,并且要debugging一个node.js应用程序,它具有以下package.json start条目:

"start:" "npm-run-all --parallel serve-static open-static" 

根据控制台输出和这个类似的SO问题,我需要添加$ NODE_DEBUG_OPTION作为第一个参数(节点),以避免连接被拒绝的错误。 Obvioulsy,我试过了

  • 在运行/debuggingconfiguration中添加$ NODE_DEBUG_OPTION作为参数
  • 节点选项

这导致了像

 node npm-cli.js run start-debug --scripts-prepend-node-path=auto $NODE_DEBUG_OPTION 

 node $NODE_DEBUG_OPTION npm-cli.js run start-debug --scripts-prepend-node-path=auto 

在每种情况下,$ NODE_DEBUG_OPTION都不parsing, 节点将其视为不存在的文件。

我也试图直接在package.json中添加variables

  "start:" "npm-run-all $NODE_DEBUG_OPTION --parallel serve-static open-static" 

这也导致无法find模块… / $ NODE_DEBUG_OPTION错误。

那么,我怎么能通过这个选项来debuggingIntelliJ IDEA中的东西呢?

谢谢

手动添加$NODE_DEBUG_OPTIONpackage.json是debugging通过npm脚本启动的应用程序的唯一方法,因为您必须确保Node.js以适当的debugging选项启动( --debug-brk ,– --inspect-brk ,等等),并且IDE无法控制subprocess的产生方式 – 启动时只能将选项传递给主进程。 但是这个选项必须传递给Node.js,而不是npm-cli.jsnpm-run-all等。如果npm-run-all是一个启动应用程序的npm脚本, .js,您需要相应地修改此脚本,如:

 "npm-run-all": "node $NODE_DEBUG_OPTION myapp.js" 

如果您的任务运行了一个shell脚本,而这个脚本反过来又通过node.js来运行您的应用程序,那么您需要修改一个shell脚本…目标是使用debugging选项启动节点进程