使用intellij使用Grunt调试项目

时间:2017-06-30 11:19:26

标签: debugging intellij-idea gruntjs

我使用intellij和平均堆栈,我想调试我的服务器的js文件。 到目前为止,我从我的项目目录中的行命令中启动“grunt serve”,我没有问题。

在intellij中,有两种方法可以使用nodejs调试项目。您可以使用远程调试配置。这种方式有效,但不是很舒服。你必须在每次更改js文件时停止调试器,并且必须重新启动调试器....

或者您可以配置GruntJs配置。

我尝试使用这种方式,但是当我从项目目录中的终端中启动“grunt serve”时,我没有相同的行为。这个过程停留在“并发:服务器”。

这是我来自intellij的配置:enter image description here

这是intellij

生成的行命令
/usr/bin/node --debug-brk=36118 --expose_debug_as=v8debug /home/bryan/Documents/projects/subscriptions/node_modules/grunt/node_modules/grunt-cli/bin/grunt --gruntfile /home/bryan/Documents/projects/subscriptions/subscriptions/Gruntfile.js -v -d serve

所以我的问题是:在终端中使用“grunt serve”或使用intelliJ的grunt调试配置有什么区别?

1 个答案:

答案 0 :(得分:0)

我发现了来自intelliJ支持的这些链接

解决方案:

https://intellij-support.jetbrains.com/hc/en-us/community/posts/206320279-AngularJS-debug-grunt-server-hangs-at-Running-concurrent-server-concurrent-task

说明:

http://stackoverflow.com/questions/19252310/how-to-fork-a-child-process-that-listens-on-a-different-debug-port-than-the-pare
  

问题可能是由Grunt产生子任务的方式引起的。通过>默认情况下,生成的子进程使用与父进程相同的调试端口 - 因此,分叉进程被暂停,并且>应用程序停止运行'。例如,请参阅> http://stackoverflow.com/questions/19252310/how-to-fork-a-child-process->那个侦听不同的调试端口而不是该端口。   请尝试添加process.execArgv = [];在gruntfile.js的顶部   在你的Gruntfile.js的顶部 - 它有帮助吗?

是的,在GruntFile.js的顶部添加process.execArgv = []可以消除"并发:服务"但我的断点不适用于港口:5858

在覆盖process.execArgv之前

是内容:

[ '--debug-brk=40305', '--expose_debug_as=v8debug' ]

" grunt serve"我有这个:

/usr/bin/node --debug-brk=40305 --expose_debug_as=v8debug /home/bryan/Documents/projects/subscriptions/node_modules/grunt/node_modules/grunt-cli/bin/grunt --gruntfile /home/bryan/Documents/projects/subscriptions/subscriptions/Gruntfile.js serve
debugger listening on port 40305
Running "serve" task

最后:

Running "express:dev" (express) task
Stopping Express server
Starting background Express server
debugger listening on port 5858
Express server listening on 9000, in development mode

在intellij调试器变量面板中,显示"连接到localhost:40305"

当我在端口上使用nodejs debug remote的第二个调试配置时:5858个断点正在工作,但这很难看,正如我在第一个问题中所描述的那样。

我试过这个解决方案,但没有改变:

https://stackoverflow.com/questions/21957411/debugging-grunt-with-intellij?rq=1

我的gruntfiles已经拥有了这些属性:

express: { dev: { options: { script: 'app/server.js', debug: true } } },

以及此文件中第71行的修改:node_modules \ grunt-express-server \ tasks \ lib \ server.js,更改' - debug' to' - debug-brk ='不影响调试。