visual studio code 调试 egg.js搭建的项目的问题?
发布于 2 年前 作者 woyunyun4le 5608 次浏览 来自 问答

visual studio code 怎么样调试egg.js搭建的项目啊? 应该怎么配置? 下了断点 并不会断下啊? 知道的说一下 谢谢。

14 回复

@woyunyun4le
目前 egg 调试这块简单的可以分为 IDE 调试和 Chrome Devtools 调试。 VSCode 的话需要先安装 egg-development-proxyworker 这个插件,完善用例之后会默认在 egg 中打开,无需单独安装。 具体的使用步骤可以看这里: 使用-vscode-进行调试 最近会添加 Node 8 Chrome Devtools 的调试代理,调试比官方的方式还更方便,可以通过这个 PR 关注进展

最后建议新手上路都应该先把 egg 文档 完完整整过一遍,这样少走弯路

@okoala is vscode debugger master~

@atian25node xx --debug,然后attach不行么? proxyworker看着就蛋疼

@i5ting 这个插件解决的最主要的一个问题是:

  • cluster 场景下,开发期自动重启 worker 导致的 debug-port 递增问题,通过该插件,就不需要手动重新 attach 了。
  • 原理很简单,就是自己起一个 socket,代理过去 debug-port,当监测到自增时,自动切换过去。
  • 命名问题可以吐槽 @okoala ,嗯.
  • 等他完善这个版本后,就内置到 egg 里面了,对使用者无感知。

话说,我就觉得 debug 的时候应该不要弄成 cluster 场景啊,只启一个 worker,会不会更好调试一点

@rwing 实际业务场景下,一般都会有 agent 参与的,开发期要尽量和线上一致。

另外,很多时候,通过单元测试来确定和排除问题会更便捷,此时就是单进程的。而不是通过 npm run debug 来手动调试。

@atian25 开发阶段cluster?

@i5ting egg 在开发期会启动 master / agent / 1 worker, 线上是 master / agent / cpus worker

@rwing 本身架构问题就是要多方面考虑的,不是说为了调试方便 debug 的时候只启一个 worker 就简单了事。如果能简单无感知的解决掉调试问题,我觉得这样的成本很低。

@okoala 嗯也对,没准只起一个 work 会隐藏掉一些问题。那新的 proxyworker 什么时候出啊

还是云里雾里

回到顶部