在Azure网站上升级节点?

时间:2016-01-12 14:36:30

标签: node.js azure azure-web-sites

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

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

有没有办法升级?

5 个答案:

答案 0 :(得分:25)

确保Azure Web App具有所需的节点版本。

  1. 转到yoursite.scm.azurewebsites.net
  2. 选择调试控制台(PowerShell或CMD)
  3. 导航至D:\Program Files (x86)\nodejs
  4. 运行dir以查看可用的nodejs版本。
  5. 例如,如果有一个名为6.3.0的目录,那么您可以使用它。

    // App Setting
    WEBSITE_NODE_DEFAULT_VERSION 6.3.0  
    
    // package.json
    engines":{"node": "6.3.0"}
    

答案 1 :(得分:13)

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

"engines":{"node":version}

例如:

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

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

答案 2 :(得分:13)

2017年更新。以上所有对我来说都不起作用。

我改变了:

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

然后我添加了应用设置值

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

我重启了一百万次app,解决方案就是要改变iisnode.yml

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

那就是它。我希望它会帮助别人。

更新

只是为了澄清事情:我正在谈论App Service App Service Image

如果你ftp到你的应用程序,你会在这里看到 iisnode.yml

iisnode.yml on ftp

答案 3 :(得分:8)

在Azure门户中更改NodeJs版本

在Azure门户中导航到您的Web应用 单击设置刀片中的应用程序设置。 您可以将WEBSITE_NODE_DEFAULT_VERSION用作要在应用程序设置中用作值的nodejs的键和版本。

示例:WEBSITE_NODE_DEFAULT_VERSION 8.0.0

答案 4 :(得分:0)

对我来说,解决方案既不是在 engine 中设置 package.json 版本,也不是设置 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"