我试图在Azure网站上使用NPM运行一些预部署任务(单元测试等),但VM上的节点版本是v0.10.32,当前版本的节点是v4.2.4。
我通过SCM网站对命令行进行非管理访问,没有RDP等。
有没有办法升级?
答案 0 :(得分:25)
确保Azure Web App具有所需的节点版本。
D:\Program Files (x86)\nodejs
dir
以查看可用的nodejs版本。例如,如果有一个名为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"
那就是它。我希望它会帮助别人。
如果你ftp到你的应用程序,你会在这里看到 iisnode.yml :
答案 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"