【发布时间】:2021-07-17 03:57:05
【问题描述】:
我正在尝试在 Azure 网站上使用 NPM 运行一些预部署任务(单元测试等),但是 VM 上的节点版本是 v0.10.32,当前节点版本是 v4.2.4。
我没有通过 SCM 网站访问命令行的非管理权限,没有 RDP 等。
有什么办法升级吗?
【问题讨论】:
标签: node.js azure azure-web-app-service
我正在尝试在 Azure 网站上使用 NPM 运行一些预部署任务(单元测试等),但是 VM 上的节点版本是 v0.10.32,当前节点版本是 v4.2.4。
我没有通过 SCM 网站访问命令行的非管理权限,没有 RDP 等。
有什么办法升级吗?
【问题讨论】:
标签: node.js azure azure-web-app-service
确保 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"}
【讨论】:
您可以使用 package.json 文件指定运行应用程序的节点版本。添加:
"engines":{"node":version}
例如:
"engines":{"node": "0.12.x"},
更多信息:https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/
【讨论】:
WEBSITE_NODE_DEFAULT_VERSION 应用设置。
package.json 中更改engine 版本对我完全没有影响。当容器启动时,无论我在engine 中设置什么,它都会显示NodeJS Version : v12.19.0。将WEBSITE_NODE_DEFAULT_VERSION 设置为14 或v14 也无效。
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\8.0.0\node.exe"
就是这样。我希望它会对某人有所帮助。
如果您 ftp 到您的应用程序,您将在此处看到 iisnode.yml:
【讨论】:
在 Azure 门户中更改 NodeJs 版本
在 azure 门户中导航到您的 Web 应用 单击设置刀片中的应用程序设置。 您可以在应用设置中包含 WEBSITE_NODE_DEFAULT_VERSION 作为键和 nodejs 的版本作为值。
示例:WEBSITE_NODE_DEFAULT_VERSION 8.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"
【讨论】: