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

标签 json node.js intellij-idea npm

在我的 Ubuntu 16.04 上,我使用 IntelliJ IDEA ultima 2017.2 以及 node v6.11.2npm v3.10.10 和 想要调试一个 node.js 应用程序,它具有以下 package.json start 条目:

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

根据控制台输出和this similar SO question我需要添加 $NODE_DEBUG_OPTION 作为第一个参数(用于 Node )以避免 Connection refused 错误。 很明显,我试过了

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

这导致了这样的调用

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 都没有解析,node 将其视为不存在的文件。

我也试过直接在 package.json 中添加变量,比如

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

这也会导致 Cannot find module .../$NODE_DEBUG_OPTION 错误。

那么,我怎样才能传递这个选项以便在 IntelliJ IDEA 中调试那个东西?

谢谢

最佳答案

手动添加 $NODE_DEBUG_OPTIONpackage.json 是调试通过 npm 脚本启动的应用程序的唯一方法,因为您必须确保 Node.js 已启动使用适当的调试选项(--debug-brk--inspect-brk 等),IDE 无法控制子进程的生成方式 - 它可以仅在启动时将选项传递给主进程。但是这个选项必须传递给 Node.js - 而不是 npm-cli.jsnpm-run-all 等。如果 npm-run- all 是一个 npm 脚本,用于启动您要使用 node.js 调试的应用程序,您需要相应地修改此脚本,例如:

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

如果您的任务运行一个 shell 脚本,反过来,它会使用 node.js 运行您的应用程序,您需要修改一个 shell 脚本...目标是使用调试选项启动 Node 进程

关于json - IntelliJ IDEA 如何正确地将 $NODE_DEBUG_OPTION 传递给 npm-run-all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45966125/

相关文章:

python - 如何在 Python 中解析 JSON-XML 混合文件

javascript - eval json数据在IE和firefox中获得不同的长度

node.js - MongoDB/Mongoose 查询 : How to get different sets of data based on a field's value

javascript - 使用多个模块的回调函数

intellij-idea - 为什么 Android Studio/Gradle 在没有进行任何更改的情况下重建我的应用程序?

javascript - 如何遍历 JSON 对象定位特定属性并将其内容推送到数组?

android - 对于有这么多数据的东西,JSON 比 XML 好吗 "classification"

javascript - Try 语句永远不会在不抛出错误的情况下通过

java - Intellij Maven 项目 - 缺少插件

intellij-idea - 异常或错误导致运行中止 : org. mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress()L