在Azure

时间:2016-10-25 16:06:04

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

更新我的hubot项目后,它不再在Azure上运行。我能够在OS X和Windows上本地运行干净的副本,但在Azure上我得到以下错误

  

错误无法加载适配器松弛 - 错误:无法找到模块'hubot'

在本地,我安装了节点6.9.1和npm 3.10.9。 Azure分别使用版本6.9.0和3.10.8。

不幸的是,我还没弄清楚如何收集更多信息,因为节点应用似乎没有达到产生更详细输出的程度。

项目和Azure网站最初是在去年创建的,在我更新了npm依赖项和节点版本后开始失败。但是,在恢复到节点4.x和npm 2.x或节点0.10.x或npm 1.x后,我仍然得到相同的错误。

这是我未经修改的hubot project that reproduces the error。自述文件包含我将其部署到Azure的步骤。

非常感谢任何见解

编辑1

的package.json

...
"dependencies": {
    "coffee-script": "^1.11.1",
    "hubot": "^2.19.0",
    "hubot-diagnostics": "0.0.1",
    "hubot-google-images": "^0.2.6",
    "hubot-google-translate": "^0.2.0",
    "hubot-help": "^0.2.0",
    "hubot-maps": "0.0.2",
    "hubot-pugme": "^0.1.0",
    "hubot-rules": "^0.1.1",
    "hubot-scripts": "^2.17.2",
    "hubot-shipit": "^0.2.0",
    "hubot-slack": "^4.2.1"
},
...

hubot列在我的package.json中的依赖项中 - 如果不是,它将无法在本地运行。我知道kudu运行npm install --production,所以我确定它是依赖项而不是devDependencies。

编辑2

Gary Liu - MSFT能够对原因有所了解并提供了一种解决方法,但为什么在其他地方运行的时候没有hubot-slack: 4.+在Azure上运行?

2 个答案:

答案 0 :(得分:8)

您可以尝试设置以下应用设置,而不是降低hubot-slack,这应该可以解决问题

键:NODE_PATH

值:D:\ home \ site \ wwwroot \ node_modules

enter image description here

出于某种原因,hubot-slack需要全局安装hubot :(

https://github.com/slackapi/hubot-slack/issues/28

答案 1 :(得分:3)

我成功地重现了您的问题,经过多次测试后,似乎问题会在高版本中依赖hubot-slack时出现。请尝试我的步骤。

  1. 转到应用服务编辑器(预览)

    转到Portal,选择您的App Service,单击App Service Editor(预览),然后单击开始enter image description here

  2. "hubot-slack": "^4.2.1"更改为"hubot-slack": "^3.4.2"中的package.json

  3. 单击控制台,然后运行以下命令:npm install –production enter image description here

  4. 安装NPM后,点击“运行”,即可完成。

  5. enter image description here