我在Azure Web应用程序服务上托管了一个nodejs(使用nestjs框架)api。我曾经使用本地git部署来部署应用程序。一切正常,但是NPM安装和构建应用程序不一致。因此,我开始研究部署应用程序的替代方法。我遇到了Azure-Devops,并尝试了一下。到目前为止,我已经注意到部署过程中有很多改进之处。部署是一致的,部署时间至少缩短了50%。
这是我当前的管道流程:
内部版本:
发布
我已经可以使用它了,但是我不确定将node_modules安装到Web应用程序的最佳实践是什么。
当前,我正在使用Azure门户界面上的控制台对话框来安装NPM软件包。这不是很一致,有时会出现超时问题。
如果我使用Azure-Devops,应该如何为我的Web应用程序执行NPM软件包安装?
在发布工件之前,我应该将NPM软件包包含到存档文件中吗?
我应该添加部署后操作来执行npm install
吗?
其他选项?
我继续测试将node_modules与存档一起使用,还尝试执行发布任务中的部署后操作。
在存档中包含node_modules 归档构建文件所花费的时间更长。发布相对较快。存档文件的大小从14kb增加到35mb。我认为总体而言,构建和发布所需的时间增加了20%。
部署后操作
部署后的npm install
花了额外的3分钟来安装软件包。这似乎是安装软件包的更正确方法。我只是不确定Azure Web应用程序上npm install
的一致性。