【问题标题】:IntelliJ IDEA how to correctly pass $NODE_DEBUG_OPTION to npm-run-allIntelliJ IDEA 如何正确地将 $NODE_DEBUG_OPTION 传递给 npm-run-all
【发布时间】:2018-02-08 12:07:25
【问题描述】:

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

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

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

  • 在运行/调试配置中添加 $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 都没有解析,node 将其视为不存在的文件。

我也试过像

一样直接在package.json中添加变量
    "start:" "npm-run-all $NODE_DEBUG_OPTION --parallel serve-static open-static"

这也会导致 无法找到模块 .../$NODE_DEBUG_OPTION 错误。

那么,我怎样才能通过这个选项来调试 IntelliJ IDEA 中的那个东西呢?

谢谢

【问题讨论】:

    标签: json node.js intellij-idea npm


    【解决方案1】:

    手动添加 $NODE_DEBUG_OPTIONpackage.json 是调试通过 npm 脚本启动的应用程序的唯一方法,因为您必须确保使用适当的调试选项(--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 脚本...目标是使用调试选项启动节点进程

    【讨论】:

      【解决方案2】:

      $NODE_DEBUG_OPTION 必须是 nodeJs 的参数,在执行 nodeJs 脚本之前。

      "some:task": "node $NODE_DEBUG_OPTION ./path/to/script.js" 
      

      所有插件/依赖项都是 nodeJs 脚本。您只需要找到正确的路径,并使用节点运行该 CLI,而不是作为独立 CLI。

      在您的情况下,npm-run-all(与大多数 CLI 一样)位于 node_modules/.bin/ 下:

      "start:" "node $NODE_DEBUG_OPTION ./node_modules/.bin/npm-run-all --parallel serve-static open-static"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-12
        • 2011-12-05
        • 2019-11-05
        • 2017-06-22
        • 2016-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多