VSCode如何为Docker化Yarn Berry(pnp)进程附加调试器并忽略包错误
解决方案
两个核心修改即可解决Yarn PnP模式下依赖异常被捕获的问题:
- 开启
justMyCode配置:VS Code Node调试器内置的justMyCode开关会自动识别用户代码与第三方依赖代码,开启后会默认跳过所有依赖包的异常,无需手动匹配路径,完美兼容Yarn PnP模式 - 补充
skipFiles的路径匹配规则,覆盖PnP模式下的物理缓存路径与虚拟模块路径,适配容器内部署的路径结构
修改后的完整launch.json配置如下:
{ "version": "0.2.0", "configurations": [ { "name": "Attach", "request": "attach", "type": "node", "restart": true, "sourceMaps": true, "internalConsoleOptions": "neverOpen", "remoteRoot": "/home/node/dist", "localRoot": "${workspaceFolder}/dist", // 新增justMyCode开关,自动跳过第三方代码 "justMyCode": true, "skipFiles": [ // 原有规则保留 "${workspaceFolder}/.yarn/**", "<node_internals>/**/*.js", // 新增:匹配容器内的Yarn PnP缓存路径 "/home/node/.yarn/**", // 新增:匹配PnP虚拟模块路径 "**/$$virtual/**", // 新增:匹配PnP映射的逻辑node_modules路径 "**/node_modules/**" ], "outFiles": ["${workspaceFolder}/dist/**/**.js"] } ] }
如果还有个别依赖的异常被捕获,可以把对应依赖的路径追加到skipFiles列表即可,PnP模式下的依赖逻辑路径格式为**/.yarn/cache/包名*,直接添加即可匹配。
内容的提问来源于stack exchange,提问作者yaserso
相关产品推荐
相关产品推荐

