.vscod/launch.json
{"vrsion":"0..0","configurations":[{"typ":"nod","qust":"launch","nam":"launchprogram","program":"${workspacFoldr}/app.js"//指定入口文件},]}
其中typ,qust,program须配置正确。按f5进入调试模式:
此时vscodtrminal打印:
/Usrs/jpsong/.nvm/vrsions/nod/v8.9./bin/nod--inspct-brk=app.jsDbuggrlistningonws://17.0.0.1:/b9--15-8a-b79d5d5Dbuggrattachd.
即按f5等同于执行nod--inspct-brk=app.js,但是有区别,待会讲。
1.--inspct查看--inspct,(包含远程调试)相关知识得知:当用--inspct启动nodjs应用时,会开启一个调试客户端进程,默认位于17.0.0.1:99安全问题,由于调试客户端进程能完全访问nod的运行环境,这样就有可能通过端口植入恶意代码到nod进程,因此在公网或内网环境下暴露调试端口是有危害的访问调试客户端的几种方式,nod-inspct,chromdvtools55+,vscod1.10+1.命令行参数--inspct:开启调试客户端,但是此时不能检测到vscod打的断点(似乎没有理由能监听到),会一直执行下去所以好像没啥用。--inspct-brk:开启调试客户端,同时在代码第一行就停止下来。所以在vscod里,按f5调试的参数是--inspct-brk
//指定host和端口--inspct-brk=[host:port]--inspct=[host:port]
1.chrom://inspct通过nod--inspct-brkapp.js,在浏览器中输入chrom://inspct,通过Dvics=OpnDdicatdDvToolsforNod或者Targt进入调试页面。通过以上配置再按f5进入调试模式,这种方式可以在vscod打断点(但是不能在浏览器中调试),可以在vscod中调试。
区别:即f5与--inspct-brk的区别在于,f5由于在vscod中,所以可以在vscod中打断点。而--inspct-brk只能在chrom-dvtool中断点调试。
.调试前端Ract查看vscod-dbuggr相关介绍:首先在vscod下载dbuggrforchrom插件,然后配置launch.json,其中qust字段有两种:launch和attach。官方的解释是:如果已经在浏览器打开了应用,那么可能就不是用"launch",因为已经存在浏览器实例了,这时候应该attach。另一方面,如果是在本地srvr的环境下,应该用launch。
简单解释:launch用于调试后端代码,attach用于调试前端代码,支持vscod断点,同时调试之前需要将该服务启动,并在浏览器中访问该URL,以便于attach到。
.1示例配置{"vrsion":"0..0","configurations":[//支持任意多项配置,会在按f5之后再进行选择{"typ":"nod","qust":"launch","nam":"launchprogram","program":"${workspacFoldr}/srvr/app.js"},{"typ":"chrom","qust":"attach",//attach方式"nam":"attachtochrom","port":9,//该端口取决于你命令行启动浏览器时的参数,--mot-dbugging-port=9"url":"