gpt4 book ai didi

更新 VS Code 后,Azure Web 应用服务部署失败,显示 "SyntaxError: Unexpected token"

转载 作者:行者123 更新时间:2023-12-02 23:12:42 25 4
gpt4 key购买 nike

更新 23 年 5 月 18 日 - 我在 Azure 应用程序设置中将其从 6.9.1 更新到 18(我正在使用的节点版本),现在我可以再次成功部署。

WEBSITE_NODE_DEFAULT_VERSION

问题

我不确定为什么我的部署失败。我之前在 VS Code 1.65 到 1.66 中遇到过这个问题,所以不得不保留在 1.65 上。 VS Code 从我之前使用的版本更新到了 1.78.2。

我尝试降级到 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 在部署过程中使用的 Node.js 版本可能与您本地使用的版本不同。

Azure 使用 WEBSITE_NODE_DEFAULT_VERSION 中指定的版本应用程序设置, package.json file 的引擎部分中的节点属性,或者默认版本(如果两者均未提供)。

  • 确保部署期间使用的 Node.js 版本支持展开运算符(5.12.0 或更高版本)。
  • 设置WEBSITE_NODE_DEFAULT_VERSION Azure 门户中的应用程序设置或在 package.json 的引擎部分中指定节点版本文件。

OP confirms :

I updated WEBSITE_NODE_DEFAULT_VERSION in Azure application setting from 6.9.1 to 18 (node version I'm using), and now I can deploy successfully again.

<小时/>

engines field in package.json 不是强制性的,如果不存在,Azure 将使用 WEBSITE_NODE_DEFAULT_VERSION 中指定的版本。应用程序设置。
但是,在 package.json 中指定 Node.js 版本对于确保您的应用程序始终使用兼容版本的 Node.js 运行,无论其部署在什么环境中,都非常有用。

engines领域 package.json指定您的项目兼容的 Node.js 版本。它通常位于 package.json 的根级别。文件。
如果不存在,您可以手动添加。

那就是这样的:

{
"name": "your-app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"engines": {
"node": "16.x"
}
}

在此示例中,engines字段指定项目应使用 Node.js 版本 16.x 运行。您可以将“16.x”替换为您正在使用的 Node.js 版本。

"*"您的package-lock.json的值(value)文件意味着您的应用程序应该适用于任何版本的 Node.js。 package-lock.json文件是自动生成的,不应手动编辑。相反,对 Node.js 版本的任何更改都应在 package.json 中进行。文件,以及 package-lock.json文件将在您下次运行 npm install 时自动更新.

关于更新 VS Code 后,Azure Web 应用服务部署失败,显示 "SyntaxError: Unexpected token",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76258887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com