Using node-inspector with Grunt tasks

后端 未结 7 1897
悲哀的现实
悲哀的现实 2020-12-04 06:20

Does someone used node-inspector with Grunt for application debugging? If not, Can you recommend a debugging tool for Grunt based apps?

I\'m working with nodejs for

相关标签:
7条回答
  • 2020-12-04 06:38

    Windows solution

    Run

    node --debug-brk c:\Users\username\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt taskname
    

    from cmd in the directory with your Gruntfile.js. Do not forget to put debugger; line in necessary places.

    0 讨论(0)
  • 2020-12-04 06:43

    To run grunt in debug, you need to pass the grunt script to node explicitly:

    node-debug $(which grunt) task
    

    and put a debugger; line in your task. node-inspector will then open a browser with debugging tools.

    Edit 28 Feb 2014

    node-inspector has added the command node-debug, which launches node in a --debug state and opens the browser to the node-inspector page, stopping when it hits the first debugger line or set breakpoint.

    Edit 30 January 2015

    On Windows, things are a touch more complicated. See the answer from @e.gluhotorenko for instructions.

    0 讨论(0)
  • 2020-12-04 06:44

    To debug, we have to modify the grunt file under bin. On my machine, grunt is installed globally, so I went to /usr/local/lib/node_modules/grunt/bin I opened the file and modified:

    #!/usr/bin/env node

    To

    #!/usr/bin/env node --debug-brk

    --debug-brk will break on the first line of javascript ran.

    Doing that alone isn't quite enough though, since you won't be able to find you're grunt task js file in the drop down in node inspector, so you have to modify the file you're interested in debugging by adding debugger; where you want the breakpoint to happen. Now you can click continue after the first break, and you'll break on you're debugger; line

    Pretty kludgy, but it's the only way I've found so far.

    0 讨论(0)
  • 2020-12-04 06:46

    I recently created grunt-node-inspector to easily configure node-inspector with the rest of your grunt workflow, check it out: https://github.com/ChrisWren/grunt-node-inspector

    Here is a section of a Gruntfile which illustrates how you can debug a grunt task using grunt-node-inspector, grunt-concurrent, and grunt-shell: https://github.com/CabinJS/Cabin/blob/master/Gruntfile.js#L44-L77

    0 讨论(0)
  • 2020-12-04 06:46

    Great answers here. In 2017, now you can do

    node --inspect --debug-brk $(which grunt) taskName

    Which prints something like.

    To start debugging, open the following URL in Chrome: chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/232652c3-f63c-4b00-8de9-17dfad5db471

    Open that URL in chrome, and you're good to go!

    I'm using Node 7.3.0 and I'm on Mac. You might have to follow some of the advice in other posts to get it going on Windows.

    0 讨论(0)
  • 2020-12-04 06:50

    2019 update

    • If you want to launch the grunt task in debug mode and break at first line:

      node --inspect-brk $(which grunt) taskName

    • If you want to launch the grunt task in debug mode at a specific port:

      node --inspect-brk=8080 $(which grunt) taskName

    • if you want to attache VSCODE to the node process running the debugging session of grunt, use the following configuration in vscode:

    {
      // Use IntelliSense to learn about possible attributes.
      // Hover to view descriptions of existing attributes.
      // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
      "version": "0.2.0",
      "configurations": [
        
        {
          "type": "node",
          "request": "attach",
          "name": "Attach by port IP 5656",
          "port": 8080
        }
      ]
    }
    
    
    0 讨论(0)
提交回复
热议问题