我使用intellij和平均堆栈,我想调试我的服务器的js文件。 到目前为止,我从我的项目目录中的行命令中启动“grunt serve”,我没有问题。
在intellij中,有两种方法可以使用nodejs调试项目。您可以使用远程调试配置。这种方式有效,但不是很舒服。你必须在每次更改js文件时停止调试器,并且必须重新启动调试器....
或者您可以配置GruntJs配置。
我尝试使用这种方式,但是当我从项目目录中的终端中启动“grunt serve”时,我没有相同的行为。这个过程停留在“并发:服务器”。
这是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调试配置有什么区别?
答案 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 ='不影响调试。