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

x y*_*x y 7 json intellij-idea node.js npm

在我的Ubuntu 16.04上,我使用IntelliJ IDEA ultima 2017.2以及节点v6.11.2npm v3.10.10并且想要调试node.js应用程序,它具有以下package.json 开始条目:

"start:" "npm-run-all --parallel serve-static open-static"
Run Code Online (Sandbox Code Playgroud)

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

  • 在运行/调试配置中添加$ NODE_DEBUG_OPTION作为参数
  • 以及作为节点选项

这导致了如下调用

node npm-cli.js run start-debug --scripts-prepend-node-path=auto $NODE_DEBUG_OPTION
Run Code Online (Sandbox Code Playgroud)

node $NODE_DEBUG_OPTION npm-cli.js run start-debug --scripts-prepend-node-path=auto 
Run Code Online (Sandbox Code Playgroud)

在每种情况下,$ NODE_DEBUG_OPTION都没有解析,节点将其视为不存在的文件.

我也试图直接添加变量的package.json

    "start:" "npm-run-all $NODE_DEBUG_OPTION --parallel serve-static open-static"
Run Code Online (Sandbox Code Playgroud)

这也会导致找不到模块.../$ NODE_DEBUG_OPTION错误.

那么,我如何通过这个选项来调试IntelliJ IDEA中的那个东西?

谢谢

len*_*ena 8

加入$NODE_DEBUG_OPTIONpackage.json手工是来调试应用程序通过NPM脚本启动的唯一方法,因为你必须确保Node.js的启动与相应的调试选项(--debug-brk,--inspect-brk,等),以及IDE无法控制的方式子进程产生 - 它只能在启动时将选项传递给主进程.但是这个选项必须传递给Node.js - 而不是传递给npm-cli.js,npm-run-all等.如果npm-run-all是一个启动应用程序的npm脚本,你想用节点调试.js,你需要相应地修改这个脚本,如:

"npm-run-all": "node $NODE_DEBUG_OPTION myapp.js" 
Run Code Online (Sandbox Code Playgroud)

如果你的任务运行了一个shell脚本,那么,用node.js运行你的应用程序,你需要修改一个shell脚本......目标是用调试选项启动节点进程