我有一个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防止与本地安装的包关联问题。
有没有人遇到同样的麻烦,可能有解决方案或提示在哪里进一步观察?
答案 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。