在 Azure 网站上升级节点?

Upgrading Node on an Azure website?

我正在尝试 运行 在 Azure 网站上使用 NPM 进行一些预部署任务(单元测试等),但是 VM 上的节点版本是 v0.10.32,当前节点版本是v4.2.4.

我可以通过 SCM 网站对命令行进行非管理访问,没有 RDP 等

有什么办法可以升级吗?

您可以使用 package.json 文件指定应用 运行 的节点版本。添加:

"engines":{"node":version}

例如:

"engines":{"node": "0.12.x"}, 

更多信息:https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/

确保 Azure Web 应用程序具有所需的节点版本。

  1. 转到yoursite.scm.azurewebsites.net
  2. 选择调试控制台(PowerShell 或 CMD)
  3. 导航到 D:\Program Files (x86)\nodejs
  4. 运行 dir 查看可用的 nodejs 版本。

例如,如果有一个名为6.3.0的目录,那么您就可以使用它。

// App Setting
WEBSITE_NODE_DEFAULT_VERSION 6.3.0  

// package.json
engines":{"node": "6.3.0"}

2017 年更新。以上都不适用于我。

我改了:

// package.json
engines":{"node": "8.0.0"}

然后我添加了应用设置值

<appSettings>
    <add key="WEBSITE_NODE_DEFAULT_VERSION" value="8.0.0" />
</appSettings>

我重启了一个应用程序一百万次,解决方案是更改iisnode.yml

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs.0.0\node.exe"

就是这样。我希望它会对某人有所帮助。

更新

澄清一下:我说的是应用服务

如果您 ftp 到您的应用程序,您将在此处看到 iisnode.yml

在 Azure 门户中更改 NodeJs 版本

导航到 Azure 门户中的 Web 应用 单击“设置”边栏选项卡中的“应用程序设置”。 您可以在应用程序设置中包含 WEBSITE_NODE_DEFAULT_VERSION 作为键和您想要的 nodejs 版本作为值。

示例:WEBSITE_NODE_DEFAULT_VERSION8.0.0

对我来说,解决方案既不是在 package.json 中设置 engine 版本,也不是设置 WEBSITE_NODE_DEFAULT_VERSION,而是使用 az command line as described here:

az webapp config set \
  --resource-group <resource-group-name> \
  --name <app-name> \
  --linux-fx-version "NODE|14-lts"