Azure App Service Zip Deploy部署旧版React应用失败求助
问题:Azure App Service Zip Deploy部署旧React应用失败
我尝试通过Zip Deploy重新部署一个未做任何修改的旧版React应用,但部署目前失败。我使用2022年11月曾成功部署的旧压缩包重试,仍出现相同错误。
错误跟踪信息
1:39:11 PM diningmanagermobile-dev: Creating zip package... 1:39:13 PM diningmanagermobile-dev: Zip package size: 3.35 MB 1:39:15 PM diningmanagermobile-dev: Updating submodules. 1:39:15 PM diningmanagermobile-dev: Preparing deployment for commit id '0866cdcc18'. 1:39:16 PM diningmanagermobile-dev: Generating deployment script. 1:39:16 PM diningmanagermobile-dev: 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"'. 1:39:17 PM diningmanagermobile-dev: C:\PROGRA~2\SITEEX~1\NODEAP~1\296456~1.8 1:39:17 PM diningmanagermobile-dev: odejs\build\src\Loader.js:153 1:39:17 PM diningmanagermobile-dev: ...StatusLogger.DEFAULT_STATUS, 1:39:17 PM diningmanagermobile-dev: ^^^ 1:39:17 PM diningmanagermobile-dev: SyntaxError: Unexpected token ... 1:39:17 PM diningmanagermobile-dev: at createScript (vm.js:56:10) 1:39:17 PM diningmanagermobile-dev: at Object.runInThisContext (vm.js:97:10) 1:39:17 PM diningmanagermobile-dev: at Module._compile (module.js:542:28) 1:39:17 PM diningmanagermobile-dev: at Object.Module._extensions..js (module.js:579:10) 1:39:17 PM diningmanagermobile-dev: at Module.load (module.js:487:32) 1:39:17 PM diningmanagermobile-dev: at tryModuleLoad (module.js:446:12) 1:39:17 PM diningmanagermobile-dev: at Function.Module._load (module.js:438:3) 1:39:17 PM diningmanagermobile-dev: at Module.require (module.js:497:17) 1:39:17 PM diningmanagermobile-dev: at module.js:669:12 1:39:17 PM diningmanagermobile-dev: at Array.forEach (native)
可能的变更原因分析
- 部署工具依赖的Node.js环境不兼容:错误日志显示部署脚本生成时使用的Node.js版本过低(路径中的
296456~1.8指向旧版Node.js),而Azure更新后的azure site deploymentscript工具代码使用了ES6扩展运算符...,该特性需要Node.js 6.0及以上版本支持。旧版Node.js无法解析该语法,直接导致部署流程中断。 - Zip Deploy默认部署逻辑更新:Azure可能调整了Zip Deploy的默认行为,现在会自动调用新版部署脚本生成工具,而该工具不再兼容低版本Node.js环境。2022年11月部署时使用的旧版部署逻辑对Node.js版本要求更低,因此当时可以成功部署。
- App Service部署工具链升级:Azure App Service的部署工具链(包括脚本生成工具)已完成版本升级,新版本工具引入了现代JavaScript语法,但未保留对旧版Node.js环境的兼容,导致使用旧环境的应用部署失败。
内容的提问来源于stack exchange,提问作者Tim Cochran
相关产品推荐
相关产品推荐

