Azure Web App

时间:2017-05-17 06:27:15

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

我有一个node.js应用程序,它在我的语言环境机器上运行无缝。但是由于以下错误,我目前无法在azure中运行:

TypeError: Object #<Object> has no method '_extend'
    at Function.init (D:\home\site\wwwroot\node_modules\finalhandler\node_modules\debug\src\node.js:234:28)
    at createDebug (D:\home\site\wwwroot\node_modules\finalhandler\node_modules\debug\src\debug.js:124:13)
    at Object.<anonymous> (D:\home\site\wwwroot\node_modules\finalhandler\index.js:14:28)
    at Module._compile (module.js:446:26)
    at Object..js (module.js:464:10)
    at Module.load (module.js:353:31)
    at Function._load (module.js:311:12)
    at Module.require (module.js:359:17)
    at require (module.js:375:17)
    at Object.<anonymous> (D:\home\site\wwwroot\node_modules\express\lib\application.js:16:20)

我已经尝试了几种解决方案,因为我假设错误的起源位于azure web app服务上使用的节点模块版本中。然而,即使将节点版本更改为相同的我本地也没有做到这一点。除了使用npm-shrinkwrap防止与本地安装的包关联问题。

有没有人遇到同样的麻烦,可能有解决方案或提示在哪里进一步观察?

1 个答案:

答案 0 :(得分:0)

This article可能会回答您的问题。

  

Azure App Service不支持所有本机模块,并且在编译具有非常特定先决条件的模块时可能会失败。目前几乎所有可用的本机模块都证明了两种解决方法是成功的:

     
      
  • 在安装了所有本机模块先决条件的Windows计算机上运行 npm install 。然后,将创建的node_modules文件夹作为应用程序的一部分部署到Azure App Service。

  •   
  • Azure App Service可以配置为在部署期间执行自定义bash或shell脚本,使您有机会执行自定义命令并精确配置 npm install 的运行方式。有关如何执行此操作的视频,请参阅Custom Website Deployment Scripts with Kudu

  •