【问题标题】:Running node-inspector alongside nodemon?在 nodemon 旁边运行 node-inspector?
【发布时间】:2014-11-06 00:41:03
【问题描述】:

我目前正在使用 node 和 nodemon。然后我开始想有时使用带有节点的检查器可能会很好,所以我开始使用node-inspector

但是,是否可以同时运行两者?

通常运行 nodemon 我会使用:

nodemon server.js
//and similarly 
node-debug server.js

我也试过了:

nodemon --debug http.js

但遗憾的是,这也不起作用。

但两者都在一起!?

【问题讨论】:

  • "node-inspector & nodemon --debug filename.js" 应该很好用。只需要一个命令行

标签: javascript node.js node-inspector nodemon


【解决方案1】:

您将使用nodemon --debug server.js 启动您的服务器,然后您需要在单独的终端窗口中运行 node-inspector,除非您将 nodemon 推到后台。

【讨论】:

  • 嗯好主意,我就是不能让它工作。也许我对检查员的期望更高?但是我执行以下nodemon --debug src/index.js 然后打开另一个cmd 并执行node-debug index.js 我在windows btw :)
  • 你在哪里运行节点检查器?
  • 我花了一些时间回到这里 :) 但我不得不开始另一个项目,然后搬家。但我回来了宝贝!虽然@paul有一件事。我可能误解了节点检查器的实际用途。我希望如果我在我的节点文件中console.log 某些东西,它们会在NI 中输出。我猜不是这样?
  • 对于那些想要一个更可靠的解决方案和一个没有 Windows hacks 的人 - 请参阅下面的答案。
【解决方案2】:

如果您想将它们作为一个命令运行,这对我有用:node-inspector & nodemon --debug app.js(将 app.js 替换为您的脚本名称)。如果事情搞砸了,你偶尔会不得不手动杀死 node-inspector,但是以这种方式运行命令可以让你选择运行 rs 以在需要时手动重新启动 nodemon。高温

【讨论】:

  • 这实际上应该被标记为正确答案。因为这只是工作!不需要两个窗口
  • Win7 中的 node-inspector v0.10.2 和 nodemon v1.3.7 不适用于我。它只会加载节点检查器 - 有什么想法吗?
  • 这是确保节点检查器在 nodemon 更新自身时获取代码更新的最佳方法。其他方法“有效”但效率不高。希望这被标记为已接受的答案。
  • @JörnBerkefeld & 仅在 Unix 中表示“在后台运行”。 Windows 有不同的命令。看到这个:superuser.com/a/591084/69693
【解决方案3】:

我无法让 nodemon 与 node-inspector 配合得很好。一次更改后,它将重新启动,但之后不再。也许是因为我使用的是 docker 容器。

重新加载应用程序的最简单方法是让节点检查器执行它(我知道这不是同时运行的答案,但它对我有用)。

按以下方式启动您的应用程序:

node-inspector --save-live-edit & \
node --debug /app/server.js

【讨论】:

    【解决方案4】:

    当我在 Linux 上运行时,我 wrote a bash script 基于 rpaskett's answer,这样您就不必每次都记住那个尴尬的命令。

    但是我在评论中注意到您正在运行 Windows。以下是您的一些选择:

    您可以将 bash 脚本转换为 Windows 批处理 并将其保存为 C:\Windows\System32\node-DEV.bat。我做到了,它可以在我的 Windows PC 上运行:

    @echo off
    echo Starting DEV environment for %1
    start node-inspector
    nodemon --debug %1
    

    那么你应该可以运行node-DEV server.js

    另一种选择;你可以运行类似 nodedev 的东西,它是用 Node.js 编写的,因此与平台无关,尽管它看起来有一段时间没有更新了。

    如果你有一个方便的话,你甚至可以在 Cygwin 环境中运行 bash 脚本。

    【讨论】:

      【解决方案5】:

      针对运行 bash shell 的 Windows 用户的 hacky 修复:

      首先,add node-inspector to your Path. (您可以使用npm list -g 找到 npm 安装包的位置)

      然后在 bash 中使用这个命令,或者将它添加到你的 npm 脚本中:

      START /B node-inspector && nodemon --debug server.js
      

      START /B 是在后台运行的 windows 命令。

      【讨论】:

        【解决方案6】:

        您必须安装 node-inspector 和 nodemon 使用:

        npm install -g nodemon
        npm install -g node-inspector
        

        要在 Windows 中运行,请创建一个新的 .bat 文件并添加以下行:

        @echo off
        echo Starting developer enviroment of the file %1
        start nodemon --debug-brk %1
        node-debug %1
        

        然后运行:

        node_desarrollo.bat "要运行的文件名.js"

        如果运行出错:

        Error: listen EADDRINUSE :::5858
            at Object.exports._errnoException (util.js:855:11)
            at exports._exceptionWithHostPort (util.js:878:20)
            at Agent.Server._listen2 (net.js:1237:14)
            at listen (net.js:1273:10)
            at Agent.Server.listen (net.js:1369:5)
            at Object.start (_debug_agent.js:21:9)
            at startup (node.js:72:9)
            at node.js:980:3
        

        这是正常的,因为 node-inspector 需要打开该端口才能连接,但是因为 nodemon --debug-brk %1 已打开 5858 端口它无法打开并显示 EADDRINUSE :::5858 错误,请注意 nodemon 的标志 --debug-brk 是必要的在第一行设置断点。运行 .bat 后尝试修改 file.js 并查看调试器上反映的更改。此调试器重新启动并显示在 file.js 中所做的更改。快乐的 JS 编码!!!

        【讨论】:

          【解决方案7】:

          对于那些想要一个独立于操作系统的解决方案并且没有针对 Windows 的 hack 等的用户。

          您可以使用 npm-run-all,它是一个 CLI 工具,允许并行或顺序运行多个 npm 脚本。所以你会这样设置你的 package.json:

          "scripts": {
            "start": "npm-run-all --parallel lint start:debug start:server",
            "lint": "eslint . --ext .js",
            "start:debug": "node-debug server.js",
            "start:server": "nodemon server.js"
          }
          

          然后从 CLI 执行:npm start

          警告:根据我的经验,同时运行 nodemon 和 node-debug 有时会导致奇怪的 node-inspector 行为。因此,我在调试时选择从我的脚本中删除 nodemon,并依靠节点检查器的 save-live-edit 功能即时更改文件。

          【讨论】:

            【解决方案8】:
            {
                "scripts": {
                    "dev": "npx nodemon --exec \"node  --inspect --debug-port=0.0.0.0  src/index.js\""
                }
            }
            

            【讨论】:

              猜你喜欢
              • 2015-08-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-02-16
              • 1970-01-01
              • 2015-08-11
              • 2017-06-23
              • 1970-01-01
              相关资源
              最近更新 更多