You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

VSCode 1.61.0最新版升级后Node.js版Azure Function调试断点未绑定问题咨询

解决VSCode 1.61.0升级后Azure Functions Node.js调试断点未绑定问题

你这情况我之前也碰到过类似的——VSCode升级后突然搞砸了Azure Functions的调试,断点全变成未绑定状态,之前明明好好的。结合你给出的调试配置,我整理了几个实战里有用的解决方向,你可以挨个试试:

1. 先调一调你的launch配置细节

你的配置里有几个地方可能和新版本VSCode不兼容:

  • 那个port: 58167大概率是问题所在。Azure Functions启动调试时有时候会随机分配端口,或者你的start脚本指定的端口和这里对不上。要么把端口改成Node.js调试默认的9229,要么干脆删掉port配置,让VSCode自动去检测调试端口。
  • 确认outFiles的路径绝对正确:${workspaceFolder}/dist/**/*.js必须是你编译后JS文件的实际位置,而且对应的.map源映射文件得和JS文件放在同一个目录里,不然VSCode找不到源码对应的断点。
  • protocol: "inspector"删掉吧,pwa-node类型的调试配置默认就用inspector协议,手动指定反而容易冲突。

调整后的参考配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "Launch Program",
      "preLaunchTask": "npm: start",
      "sourceMaps": true,
      "smartStep": true,
      "outFiles": ["${workspaceFolder}/dist/**/*.js"]
    }
  ]
}

2. 检查你的npm start脚本

得确保package.json里的start脚本是真的在启动调试模式的Azure Functions。比如脚本里必须包含--inspect相关的参数,让Functions进程进入调试监听状态,示例:

"scripts": {
  "start": "func start --language-worker --inspect=9229"
}

如果你的脚本里没加这个参数,VSCode根本连不上调试进程,断点自然绑定不了。

3. 同步更新Azure Functions扩展

VSCode升级后,配套的Azure Functions扩展也得跟上。打开扩展面板搜"Azure Functions",看看有没有更新提示,更到最新版之后重启VSCode再试调试,很多兼容性问题都是扩展没更导致的。

4. 清掉VSCode的缓存试试

有时候升级后的缓存会残留旧配置,搞出奇怪的问题:

  • 先关掉VSCode,备份一下.vscode目录里的重要文件(比如launch.json),然后删掉.vscode里的其他临时文件(比如settings.json如果有调试相关的自定义配置)。
  • 或者直接在命令面板(Ctrl+Shift+P)执行Developer: Reload Window,强制重启VSCode并清除临时缓存。要是还不行,就彻底清掉全局缓存:Windows删%APPDATA%\Code\Cache,Linux/macOS删~/.config/Code/Cache,然后重启VSCode。

5. 实在不行就临时降级VSCode

如果上面的方法都不管用,那可能是1.61.0版本本身的兼容性bug。你可以暂时降级到之前能正常调试的版本(比如1.60.x),同时等着VSCode或者Azure Functions扩展的修复更新出来。

内容的提问来源于stack exchange,提问作者Yev

火山引擎 最新活动