最近我开始研究Nodejs项目,我们正在使用Azure功能。我很高兴将应用程序部署到Azure。
首先,我尝试在部署过程中找到无服务器插件来安装依赖包。找不到一个简单的方法来做到这一点。
经过一些谷歌搜索并阅读此documentation后,我发现最佳做法是在构建步骤中安装软件包,并部署已生成的node_modules。
将node_modules目录部署为应用程序的一部分会增加部署的大小。 ...但是,它确实保证了生产中使用的模块版本与开发中使用的模块相同。
所以我尝试遵循这一点,并使用依赖项部署小型应用程序:
"dependencies": {
"azure-function-express": "^1.3.0",
"body-parser": "^1.18.2",
"express": "^4.16.2",
"cookie-parser": "^1.4.3",
"cors": "^2.8.4"
}
要部署的Zip文件大约是709 KB。它成功部署。但是当我再添加一个包(mongoose)
时"dependencies": {
"azure-function-express": "^1.3.0",
"body-parser": "^1.18.2",
"express": "^4.16.2",
"cookie-parser": "^1.4.3",
"cors": "^2.8.4",
"mongoose": "^5.0.11"
}
zip的大小变为2.83 mb,部署挂起,显示消息“Uploading function:...”,功能未部署,没有日志。
它挂起......我不确定究竟是什么原因,但是即使只有很少的软件包,它也不起作用,如果我添加更多的大包装怎么办?
我恳请您建议如何解决此类问题,以及哪种方法最适合您构建和部署Nodejs Azure功能。谢谢!
答案 0 :(得分:0)
解决方案是使用webpack将许多软件包捆绑到一个文件中。然后可以轻松,快速地进行部署。如果您使用serverless
框架,则有一个软件包serverless-webpack可以完成这项工作。