Kudu npm 安装失败

Kudu npm install failed

尝试在 Azure 上使用 kudu 部署我的项目时,我遇到了一个非常奇怪的错误。

我已经用 dotnet 和 VueJs 构建了我的项目。我使用了以下模板“https://github.com/MarkPieszak/aspnetcore-Vue-starter

我已经尝试将 WEBSITE_NODE_DEFAULT_VERSION 设置为几个不同的版本,但没有成功。

以下是 Kudu 的输出:

Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling ASP.NET Core Web Application deployment.
  Restore completed in 735.88 ms for D:\home\site\repository\projectx.csproj.
Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 345.52 ms for D:\home\site\repository\projectx.csproj.
  projectx -> D:\home\site\repository\bin\Release\netcoreapp2.1\projectx.dll
  projectx -> D:\home\site\repository\bin\Release\netcoreapp2.1\projectx.Views.dll
  NPM Installing dependencies...
  npm WARN package.json assert@1.4.1 assert is also the name of a node core module.
  npm WARN package.json buffer@4.9.1 buffer is also the name of a node core module.
  npm WARN package.json events@1.1.1 events is also the name of a node core module.
  npm WARN package.json indexof@0.0.1 No repository field.
  npm WARN package.json punycode@2.1.1 punycode is also the name of a node core module.
  npm WARN package.json querystring@0.2.0 querystring is also the name of a node core module.
  npm WARN package.json string_decoder@1.1.1 string_decoder is also the name of a node core module.
  npm WARN package.json url@0.11.0 url is also the name of a node core module.
  npm WARN package.json util@0.10.4 util is also the name of a node core module.
  npm WARN package.json vue-template-es2015-compiler@1.6.0 No repository field.
EXEC : npm ERR! error : Method Not Allowed [D:\home\site\repository\projectx.csproj]
  npm ERR!     at errorResponse (D:\Program Files (x86)\npm.4.28\node_modules\npm\lib\cache\add-named.js:260:10)
  npm ERR!     at D:\Program Files (x86)\npm.4.28\node_modules\npm\lib\cache\add-named.js:203:12
  npm ERR!     at saved (D:\Program Files (x86)\npm.4.28\node_modules\npm\node_modules\npm-registry-client\lib\get.js:167:7)
  npm ERR!     at Object.oncomplete (fs.js:108:15)
  npm ERR! If you need help, you may report this *entire* log,
  npm ERR! including the npm and node versions, at:
  npm ERR!     <http://github.com/npm/npm/issues>

  npm ERR! System Windows_NT 6.2.9200
  npm ERR! command "node" "D:\Program Files (x86)\npm\1.4.28\node_modules\npm\bin\npm-cli.js" "install" "--ignore-scripts"
  npm ERR! cwd D:\home\site\repository
  npm ERR! node -v v0.10.40
  npm ERR! npm -v 1.4.28
  npm ERR! code E405
D:\home\site\repository\projectx.csproj(25,5): error MSB3073: The command "npm install --ignore-scripts" exited with code 1.
Failed exitCode=1, command=dotnet publish "D:\home\site\repository\projectx.csproj" --output "D:\local\Tempd65c86f4c7808a" --configuration Release
An error has occurred during web site deployment.
\r\nD:\Program Files (x86)\SiteExtensions\Kudu.11121.3655\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"

有人有想法吗?该项目在我的电脑上运行良好。

根据你的错误信息,你的问题显然是Node版本不对导致的。您使用的 GitHub 存储库的先决条件之一是 NodeJS >= 8.9.4,但现在它在您的 Azure WebApp 上是 v0.10.40。正如您所说,WEBSITE_NODE_DEFAULT_VERSION 设置已添加,但似乎不起作用。

我按照document添加相同的设置并在Azure门户上单击Save如下图,然后我的kudu控制台立即重新启动并检查我的节点和npm版本是否正确。

所以我的建议是:

  1. 请检查您的 WEBSITE_NODE_DEFAULT_VERSION 设置是否添加到正确的字段中。
  2. 您可以尝试手动重新启动 Azure WebApp 以使更改生效。