在我的 Ubuntu 16.04上, 我将 IntelliJ IDEA ultima 2017.2 与 节点v6.11.2 和 npm v3.10.10 一起使用,并想调试一个具有以下 package.json 开始 条目的node.js应用程序:
"start:" "npm-run-all --parallel serve-static open-static"
根据控制台输出和类似的SO问题我需要添加 $ NODE_DEBUG_OPTION 作为第一个参数(用于节点),以避免 Connection拒绝 错误。Obvioulsy,我尝试过
导致像
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都不会解析,并且 节点 将其视为不存在的文件。
我也试图直接在 package.json中 添加变量,例如
"start:" "npm-run-all $NODE_DEBUG_OPTION --parallel serve-static open-static"
这也会导致 找不到模块… / $ NODE_DEBUG_OPTION 错误。
那么,如何在IntelliJ IDEA中调试该选项呢?
谢谢
添加$NODE_DEBUG_OPTION到package.json手动是通过调试脚本NPM启动应用程序的唯一途径,因为你必须确保做出Node.js的启动与相应的调试选项(--debug- brk,--inspect-brk,等),以及IDE无法控制的方式子进程生成- 启动时只能将选项传递给主进程。但是必须将此选项传递给Node.js,而不是传递给 npm-cli.js , npm-run-all 等。如果 npm-run-all 是一个npm脚本,它将启动您要使用node调试的应用程序.js,您需要相应地修改此脚本,例如:
$NODE_DEBUG_OPTION
package.json
--debug- brk
--inspect-brk
"npm-run-all": "node $NODE_DEBUG_OPTION myapp.js"
如果您的任务运行一个Shell脚本,而该脚本又通过node.js运行您的应用程序,则您需要修改一个Shell脚本。目标是使用调试选项启动节点进程。