Azure Web应用服务部署失败,提示“SyntaxError:更新VS代码后意外标记”

envsm3lx  于 2023-05-23  发布在  其他
关注(0)|答案(2)|浏览(169)

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

网站_节点_默认值_版本

问题

我不知道为什么我的部署失败了。我以前在VS Code 1.65到1.66中遇到过这个问题,不得不留在1.65上。有一个VS代码更新到1.78.2从任何以前的版本,我是。
我尝试降级到2023年3月版本的VS Code并重试部署,但仍然失败。(仅供参考-仍然有版本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。不知道我还能做些什么,看看重置一些东西是否可能有帮助!

jtw3ybtb

jtw3ybtb1#

Node.js Loader模块有问题,这意味着所使用的Node.js版本存在不兼容性或配置问题。
使用node --version命令检查node.js版本,并按照以下文档中的详细说明配置您的环境。
1.配置环境,
1.将其更新为Node.js版本18.x,Azure函数核心工具4.x和函数运行时版本:4.17.x,
1.检查Visual Studio Code latest releases并升级它。
在我的本地环境中,已经安装了node.js v16.17.0。一旦我在本地Azure函数中创建了.js函数,我运行了该函数,它显示了一个警告,如下所示。我也收到了和你一样的错误。

然后,我将其更新为v18.0***,它开始按预期工作。***

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

Install Node.js v18.12.0
在完成上述更改之后,我运行了示例触发器函数,并发送了一条Hello world消息,并且能够触发它。

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

您还可以检查应用程序设置中的函数运行时设置FUNCTION_WORKER_RUNTIMEFUNCTIONS_ENTENSION_VERSION和其他设置是否正确设置了所需的版本值。

  • 注意:* 检查本地创建的函数运行时的版本和Portal中部署的函数运行时的版本是否相同且不冲突。

部署到function app后,可以在monitoring部分查看日志流中的日志,如图所示。

  • 否则 *

您可以按照下面的URL,将其替换为您的功能应用程序名称,以检索所有日志。

请参阅Azure Functions runtime Versions compatibility

rjee0c15

rjee0c152#

正如我所评论的,Azure在部署过程中使用的Node.js版本可能与您在本地使用的版本不同。
Azure使用在WEBSITE_NODE_DEFAULT_VERSION应用程序设置中指定的版本、package.json file的引擎部分中的节点属性或默认版本(如果两者都未提供)。

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

OPconfirms
我将Azure应用程序中的WEBSITE_NODE_DEFAULT_VERSION设置从6.9.1更新为18(我正在使用的节点版本),现在我可以再次成功部署。
package.json中的engines字段不是必需的,如果不存在,Azure将使用WEBSITE_NODE_DEFAULT_VERSION应用程序设置中指定的版本。
但是,在package.json中指定Node.js版本对于确保您的应用程序始终使用兼容的Node.js版本运行非常有用,无论它部署在什么环境中。
package.json中的engines字段指定项目兼容的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文件中的"*"值意味着您的应用程序应该与任何版本的Node.js一起工作。package-lock.json文件是自动生成的,不应手动编辑。相反,对Node.js版本的任何更改都应该在package.json文件中进行,并且package-lock.json文件将在下次运行npm install时自动更新。

相关问题