You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code调试TypeScript Azure Functions时Node.js版本异常排查

问题描述

我正尝试在VS Code中调试Azure Function App,该应用是按照Azure官方文档在VS Code中创建的。创建过程中生成的.vscode目录包含以下配置:

.vscode/launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Attach to Node Functions",
      "type": "node",
      "nodeVersionHint": 18,
      "request": "attach",
      "port": 9229,
      "preLaunchTask": "func: host start"
    }
  ]
}

.vscode/settings.json

{
"azureFunctions.deploySubpath": ".",
"azureFunctions.postDeployTask": "npm install (functions)",
"azureFunctions.projectLanguage": "TypeScript",
"azureFunctions.projectRuntime": "~4",
"debug.internalConsoleOptions": "neverOpen",
"azureFunctions.preDeployTask": "npm prune (functions)"
}

启动调试器时收到错误:

Azure Functions Core Tools
Core Tools Version: 4.0.5085 Commit hash: N/A (64-bit)
Function Runtime Version: 4.16.4.20366

[2023-08-16T19:33:11.815Z] [error] Incompatible Node.js version (v20.3.1). Refer to our documentation to see the Node.js versions supported by each version of Azure Functions

我的NVM默认版本是18.17.1,执行nvm list结果如下:

->     v18.17.1
         system
default -> 18 (-> v18.17.1)

已确认VS Code使用的shell与本地一致,且通过NVM彻底删除了Node.js v20版本。想知道:VS Code中是否还有其他针对调试器的Node.js版本配置位置?

可能的配置位置及解决方法
  • 任务配置文件(tasks.json):检查.vscode/tasks.json中是否有自定义的func: host start任务,若存在,确认是否指定了错误的Node版本路径,修改为NVM管理的v18.17.1版本路径(可通过nvm which 18获取),或确保任务使用当前shell的默认Node版本。
  • VS Code Node路径设置:在VS Code设置中搜索nodePath,若手动指定了Node版本路径,修改为NVM中v18.17.1的安装路径。
  • Azure Functions扩展配置:在VS Code设置中搜索azureFunctions.nodeRuntimeVersion,若设置了错误版本,改为18即可。
  • 项目本地版本指定文件:检查项目根目录是否存在.nvmrc或.node-version文件,若文件内指定了20,修改为18。这类文件会被NVM和VS Code识别,自动切换对应版本。
  • 重启VS Code清除缓存:关闭所有VS Code窗口后重新打开,确保终端加载最新的NVM环境变量,避免旧版本缓存导致识别错误。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:43:24