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

Node.js版Azure Functions运行报mscorlib异常与语法错误求助

问题原因

报错提示SyntaxError: Unexpected token ...的核心原因是运行Azure Functions的Node.js版本过低,不支持对象展开运算符语法。项目依赖的@tediousjs/connection-string包在代码中使用了对象展开特性,而当前工作站上Azure Core Tools实际调用的Node.js版本低于v8.3(对象展开运算符从Node.js v8.3版本开始默认支持),无法识别该语法导致报错。
你提到项目使用Node.js v14开发且其他设备运行正常,说明本地工作站的Azure Core Tools没有调用系统安装的Node.js v14,而是使用了内置绑定的旧版本Node.js。

解决方案
  • 首先执行以下两个命令,确认版本匹配情况:
    # 查看系统当前Node版本
    node -v
    # 查看Azure Functions Core Tools实际使用的Node版本
    func node --version
    
    如果func node --version返回的版本低于v14,按以下方案修复:
  • 方案1:强制指定Core Tools使用Node.js 14版本
    Windows系统在当前运行项目的终端执行:
    set FUNCTIONS_CORE_TOOLS_NODE_DEFAULT_VERSION=14
    
    如果需要永久生效,可在系统环境变量中新增FUNCTIONS_CORE_TOOLS_NODE_DEFAULT_VERSION变量,值设为14。
    Mac/Linux系统执行:
    export FUNCTIONS_CORE_TOOLS_NODE_DEFAULT_VERSION=14
    
  • 方案2:升级Azure Functions Core Tools到匹配版本
    运行func -v查看Core Tools版本,若为v2.x及以下旧版本,升级到v3.x或v4.x版本,即可默认支持Node.js 14运行时。
  • 方案3:检查版本管理工具的生效状态
    若使用nvm、nvm-windows等Node版本管理工具,确认执行func start命令的终端,已经切换到Node.js v14环境,避免多终端版本不统一问题。
  • 临时降级方案(不推荐)
    若暂时无法调整运行时,可将项目的mssql依赖降级到v6.x版本,该版本依赖的@tediousjs/connection-string包未使用高版本语法,可兼容旧版Node运行时。

修复完成后重新执行func start启动项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:54:04