更新 VS Code 后,Azure Web 应用程序服务部署失败提示“SyntaxError:意外令牌”

问题描述 投票:0回答:1

我不确定为什么我的部署失败了。我之前在 VS Code 1.65 到 1.66 中遇到过这个问题,不得不留在 1.65 上。 VS Code 从我之前使用的任何版本更新到 1.78.2,还有 Azure 功能扩展更新。

我尝试降级到 2023 年 3 月版本的 VS Code 并重试部署,但仍然遇到同样的失败。 (仅供参考 - 当我尝试使用 3 月版本执行部署时,版本 1.78.2 仍然打开并运行)所以不知道这是否有所不同?

这是我在输出中看到的。我不确定这是什么意思?我该如何调试呢?我在 Azure 中打开了应用程序日志记录,但在我尝试部署时在日志流中看不到任何内容。我还打开了 Kudu (*.scm.azurewebsites.net) 并查看了文件,但没有看到任何有用的信息。也许我对 Kudu 不够熟悉,无法理解如何使用它来调试失败的部署。

    6:42:56 PM yoga-dev-1: Starting deployment...
    6:42:59 PM yoga-dev-1: Creating zip package...
    6:43:10 PM yoga-dev-1: Zip package size: 29 MB
    6:43:10 PM yoga-dev-1: Fetching changes.
    6:43:11 PM yoga-dev-1: Cleaning up temp folders from previous zip deployments and extracting pushed zip file C:\local\Temp\zipdeploy\qkztvba1.zip (27.71 MB) to C:\local\Temp\zipdeploy\extracted
    6:43:17 PM yoga-dev-1: Updating submodules.
    6:43:17 PM yoga-dev-1: Preparing deployment for commit id '7e83110e5b'.
    6:43:17 PM yoga-dev-1: Generating deployment script.
    6:43:17 PM yoga-dev-1: 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"'.
    6:43:18 PM yoga-dev-1: C:\PROGRA~2\SITEEX~1\NODEAP~1\296456~1.8
    6:43:18 PM yoga-dev-1: odejs\build\src\Loader.js:153
    6:43:18 PM yoga-dev-1:                 ...StatusLogger.DEFAULT_STATUS,
    6:43:18 PM yoga-dev-1:                 ^^^
    6:43:18 PM yoga-dev-1: SyntaxError: Unexpected token ...
    6:43:18 PM yoga-dev-1:     at createScript (vm.js:56:10)
    6:43:18 PM yoga-dev-1:     at Object.runInThisContext (vm.js:97:10)
    6:43:18 PM yoga-dev-1:     at Module._compile (module.js:542:28)
    6:43:18 PM yoga-dev-1:     at Object.Module._extensions..js (module.js:579:10)
    6:43:18 PM yoga-dev-1:     at Module.load (module.js:487:32)
    6:43:18 PM yoga-dev-1:     at tryModuleLoad (module.js:446:12)
    6:43:18 PM yoga-dev-1:     at Function.Module._load (module.js:438:3)
    6:43:18 PM yoga-dev-1:     at Module.require (module.js:497:17)
    6:43:18 PM yoga-dev-1:     at module.js:669:12
    6:43:18 PM yoga-dev-1:     at Array.forEach (native)
    6:43:18 PM yoga-dev-1: C:\PROGRA~2\SITEEX~1\NODEAP~1\296456~1.8
    6:43:18 PM yoga-dev-1: odejs\build\src\Loader.js:153\r
    6:43:18 PM yoga-dev-1:                 ...StatusLogger.DEFAULT_STATUS,\r
    6:43:18 PM yoga-dev-1:                 ^^^\r
    6:43:18 PM yoga-dev-1: \r
    6:43:18 PM yoga-dev-1: SyntaxError: Unexpected token ...\r
    6:43:18 PM yoga-dev-1:     at createScript (vm.js:56:10)\r
    6:43:18 PM yoga-dev-1:     at Object.runInThisContext (vm.js:97:10)\r
    6:43:18 PM yoga-dev-1:     at Module._compile (module.js:542:28)\r
    6:43:18 PM yoga-dev-1:     at Object.Module._extensions..js (module.js:579:10)\r
    6:43:18 PM yoga-dev-1:     at Module.load (module.js:487:32)\r
    6:43:18 PM yoga-dev-1:     at tryModuleLoad (module.js:446:12)\r
    6:43:18 PM yoga-dev-1:     at Function.Module._load (module.js:438:3)\r
    6:43:18 PM yoga-dev-1:     at Module.require (module.js:497:17)\r
    6:43:18 PM yoga-dev-1:     at module.js:669:12\r
    6:43:18 PM yoga-dev-1:     at Array.forEach (native)\r
    6:43:18 PM yoga-dev-1: C:\Program Files (x86)\SiteExtensions\Kudu\100.50331.6204\bin\Scripts\starter.cmd "C:\Program Files (x86)\SiteExtensions\Kudu\100.50331.6204\bin
    6:43:18 PM yogabandy-dev-1: ode_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"
    6:43:19 PM yoga-dev-1: Deployment Failed.
    6:43:29 PM yoga-dev-1: Deployment failed.

更新 - 查看我的笔记,在 2022 年 4 月 8 日,我遇到了 VS Code 1.66.1 的问题,我在 web 应用程序部署失败时遇到了同样的问题。所以我降级到 VS Code 1.65.2 并且它再次工作。

问题 - 我可以调查一下 VS Code、Azure 和我正在部署的 Web 应用程序之间是否存在兼容性问题吗?我检查了 Web 应用程序服务,它和我的应用程序一样使用 .Net 6。我重新启动了我的 Mac,重新启动了 VS Code。不知道我还能做些什么来看看重置某些东西是否有帮助!

azure visual-studio-code azure-web-app-service azure-deployment
1个回答
0
投票

Node.js
Loader 模块有问题,暗示使用的
Node.js
版本存在不兼容或配置问题。

使用

node.js
命令检查
node --version
版本,并按照以下文档中的详细信息配置您的环境。

  1. 配置环境,
  2. 更新到
    Node.js
    版本
    18.x
    ,Azure函数核心工具4.x和函数运行时版本:4.17.x,
  3. 检查Visual Studio Code最新版本并升级它。

在我的本地环境中已经安装了

node.js v16.17.0
。在本地 Azure 函数中创建
.js
函数后,我运行该函数,它显示如下警告。这样,我也收到了与您相同的错误。

enter image description here

然后,我将其更新为

v18.0
,它开始按预期工作。

注意: 在升级到任何最新版本/发行版之前,请确保您正在卸载以前的版本并安装特定的发行版。

安装 Node.js v18.12.0

经过上述更改后,我运行带有 Hello world 消息的示例触发器功能并能够触发它。

enter image description here

enter image description here

更新兼容版本后部署成功:

enter image description here

您还可以检查功能运行时设置

FUNCTION_WORKER_RUNTIME
FUNCTIONS_ENTENSION_VERSION
和应用程序设置中的其他设置是否正确设置了所需的版本值。

部署到函数应用程序后,您可以在监控部分查看日志流中的日志,如图所示。

enter image description here

否则,

您可以按照以下 URL 将其替换为您的功能 App 名称以检索所有日志。

日志流: https://newaps.scm.azurewebsites.net/api/logstream

enter image description here

参考 Azure Functions 运行时版本兼容性.

© www.soinside.com 2019 - 2024. All rights reserved.