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

生产槽中Microsoft Azure Web应用部署失败问题求助

Azure Web应用ZIP Deploy部署失败排查

问题描述

自7月底至8月底,通过Azure DevOps或Kudu部署Web应用时持续失败,错误日志显示语法解析错误,具体部署日志如下:

2022-09-06T16:11:48.4467209Z Using the following command to generate deployment script: 'azure site deploymentscript -y --no-dot-deployment -r "C:\local\Temp\zipdeploy\extracted" -o "C:\home\site\deployments\tools" --basic --sitePath "C:\local\Temp\zipdeploy\extracted"'.
2022-09-06T16:11:48.4468177Z C:\PROGRA~2\SITEEX~1\NODEAP~1\298144~1.4\nodejs\node_modules\open\index.js:38
2022-09-06T16:11:48.4468606Z        } catch {}
2022-09-06T16:11:48.4468848Z                ^
2022-09-06T16:11:48.4468969Z 
2022-09-06T16:11:48.4469262Z SyntaxError: Unexpected token {
2022-09-06T16:11:48.4469684Z     at createScript (vm.js:80:10)
2022-09-06T16:11:48.4470105Z     at Object.runInThisContext (vm.js:139:10)
2022-09-06T16:11:48.4470545Z     at Module._compile (module.js:616:28)
2022-09-06T16:11:48.4471047Z     at Object.Module._extensions..js (module.js:663:10)
2022-09-06T16:11:48.4471513Z     at Module.load (module.js:565:32)
2022-09-06T16:11:48.4471942Z     at tryModuleLoad (module.js:505:12)
2022-09-06T16:11:48.4472389Z     at Function.Module._load (module.js:497:3)
2022-09-06T16:11:48.4472810Z     at Module.require (module.js:596:17)
2022-09-06T16:11:48.4473206Z     at require (internal/module.js:11:18)
2022-09-06T16:11:48.4473789Z     at Object.<anonymous> (C:\PROGRA~2\SITEEX~1\NODEAP~1\298144~1.4\nodejs\node_modules\@azure\identity\dist\index.js:22:12)
2022-09-06T16:11:48.4476491Z C:\PROGRA~2\SITEEX~1\NODEAP~1\298144~1.4\nodejs\node_modules\open\index.js:38\r\n      } catch {}\r\n              ^\r\n\r\nSyntaxError: Unexpected token {\r\n    at createScript (vm.js:80:10)\r\n    at Object.runInThisContext (vm.js:139:10)\r\n    at Module._compile (module.js:616:28)\r\n    at Object.Module._extensions..js (module.js:663:10)\r\n    at Module.load (module.js:565:32)\r\n    at tryModuleLoad (module.js:505:12)\r\n    at Function.Module._load (module.js:497:3)\r\n    at Module.require (module.js:596:17)\r\n    at require (internal/module.js:11:18)\r\n    at Object.<anonymous> (C:\PROGRA~2\SITEEX~1\NODEAP~1\298144~1.4\nodejs\node_modules\@azure\identity\dist\index.js:22:12)\r\nC:\Program Files (x86)\SiteExtensions\Kudu\97.40810.5869\bin\Scripts\starter.cmd "C:\Program Files (x86)\SiteExtensions\Kudu\97.40810.5869\bin\node_modules\.bin\kuduscript.cmd" -y --no-dot-deployment -r "C:\local\Temp\zipdeploy\extracted" -o "C:\home\site\deployments\tools" --basic --sitePath "C:\local\Temp\zipdeploy\extracted"
2022-09-06T16:11:48.4479031Z Deployment Failed.
2022-09-06T16:11:48.4505538Z ##[error]Failed to deploy web package to App Service.
2022-09-06T16:11:48.4513364Z ##[error]Error: Package deployment using ZIP Deploy failed. Refer logs for more details.

原因分析

日志中的SyntaxError: Unexpected token {指向open模块的} catch {}语法,这是ES2019引入的可选catch绑定语法(无需声明错误变量)。而当前Kudu环境使用的Node.js版本(从路径和vm.js版本判断为v10.x)不支持该语法,导致部署脚本执行失败。

解决方案

方法1:指定应用Node.js版本

在项目根目录创建.node-version文件,写入支持ES2019的Node.js版本号(如14.21.0),Azure部署时会自动使用该版本运行相关脚本,避免语法兼容问题。

方法2:升级Web应用的Node.js版本

  1. 登录Azure门户,进入目标Web应用
  2. 导航至配置 > 通用设置
  3. 在Node.js版本下拉菜单中选择v14.x或更高版本(如14 LTS)
  4. 保存设置后重新发起部署

方法3:降级依赖包版本

如果无法升级Node.js,可降级open包到兼容旧版本的版本:

  1. 修改项目package.json中的open依赖版本为^7.4.2(该版本不使用可选catch绑定语法)
  2. 执行npm install更新依赖
  3. 重新打包并部署

方法4:使用自定义部署脚本

跳过Kudu自动生成的脚本,手动编写部署脚本(如deploy.cmd),直接完成文件复制、依赖安装等操作,避免调用依赖高版本Node.js的模块。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:17:35