NX NestJS项目中VSCode TypeScript调试无法关联本地文件
Docker容器中NX NestJS应用断点不生效的解决方案
1. 开启容器内应用的调试模式
当前docker-compose的启动命令未包含调试参数,NX应用必须以inspect模式启动才能被外部调试器连接。修改command字段:
command: npx nx run my-app-api:serve --inspect=0.0.0.0:6661
--inspect=0.0.0.0:6661:让Node.js监听容器所有网卡,确保宿主机能通过映射的6661端口连接调试器:serve:指定NX以开发模式启动,默认会生成正确的source map文件
2. 修正launch.json的路径映射
调试诊断提示的路径不匹配,本质是source map中记录的容器内文件路径与本地路径未正确对应。更新launch.json配置如下:
{ "name": "Attach to my-app-api", "request": "attach", "address": "localhost", "port": 6661, "localRoot": "${workspaceFolder}", "remoteRoot": "/app", "restart": true, "skipFiles": ["<node_internals>/**"], "type": "node", "sourceMaps": true, "resolveSourceMapLocations": [ "${workspaceFolder}/**", "/app/**", "!**/node_modules/**" ], "sourceMapPathOverrides": { "/app/apps/my-app-api/*": "${workspaceFolder}/apps/my-app-api/*", "/app/libs/*": "${workspaceFolder}/libs/*", "/app/*": "${workspaceFolder}/*" } }
resolveSourceMapLocations:指定调试器需要解析的source map路径范围,排除node_modules减少干扰sourceMapPathOverrides:精确映射NX项目的目录结构,把容器内/app下的apps、libs等目录对应到本地工作区的同名目录,覆盖所有层级的路径匹配
3. 验证文件挂载正确性
确认docker-compose中的volume挂载../..:/app层级正确:进入容器执行ls /app/apps/my-app-api/src,检查输出是否与本地项目文件完全一致,避免因挂载路径层级错误导致文件不同步。
4. 重启服务并重新调试
修改配置后,执行docker-compose down停止容器,再用docker-compose up -d重新启动服务,最后重新附加调试会话,尝试在本地源码文件设置断点。
内容的提问来源于stack exchange,提问作者distante
相关产品推荐
相关产品推荐

