Azure App Service:package.json中的节点版本不起作用

时间:2017-11-20 08:59:07

标签: azure azure-web-sites iisnode

在我的节点js web app中,我使用node version = 6.9.1:

  "engines": {
    "node": "6.9.1"
  }

当我使用

进行部署时
git push azure master

它显示正确使用的节点。

...
remote: Selected node.js version 6.9.1. Use package.json file to choose a different version.
remote: Selected npm version 3.10.8
...

但由于node.exe崩溃,我的应用服务未正确启动。 稍后我在我的入口点脚本中输出用过的节点版本号,我得到

Node version:v0.6.20

从文件D:\ home \ LogFiles \ Application \ xxxx-stdout-xxxx.txt

很明显,Azure App服务没有使用我定义的node.exe版本。

稍后我会关注https://docs.microsoft.com/en-us/azure/nodejs-specify-node-version-azure-apps

在文件D:\ home \ site \ wwwroot \ iisnode.yml中添加以下文字以解决此问题。

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

所以我的问题是为什么Azure App Service(iisnode)没有在package.json中使用我定义的节点版本?

1 个答案:

答案 0 :(得分:0)

要使用iisnode.yml(不会更改kudu cli上的节点版本或部署期间)更改Azure App Service的NodeJs版本,您需要在app根文件夹中手动设置iisnode.yml文件,包括以下内容如你所说: nodeProcessCommandLine:“D:\ Program Files(x86)\ nodejs \ 5.9.1 \ node.exe”

然后,您需要在源代码管理部署期间使用package.json设置iisnode.yml文件。 Azure源代码管理部署过程将涉及以下步骤 1.将内容移动到azure Web应用程序 2.如果Web应用程序根文件夹中没有(deploy.cmd,.deployment文件),则创建默认部署脚本 3.运行部署脚本,如果在package.json文件中提及nodejs版本,则创建iisnode.yml文件。发动机

参考:https://blogs.msdn.microsoft.com/azureossds/2016/04/20/nodejs-and-npm-versions-on-azure-app-services/

否则,您可以使用Azure门户中的“应用设置”来更改NodeJ的版本。