我正在用Angular编写一个nodejs应用程序作为我的前端。 为此,我将Git作为我的代码管理服务器。 对于客户来说,我正在进行缩小,它已准备好投入生产。
但我不确定,如何为生产准备服务器端文件。 我们需要将所有Git文件夹复制到生产服务器吗? 让我知道部署nodejs服务器应用程序的最佳方法。
答案 0 :(得分:1)
node_modules
,因为不同的设备有不同的设置/安装,除非你npm install
,否则你无法判断一个包在运行之前是否有效。Docker
,请使用它,将所有(包含node_modules
)文件预先捆绑到泊坞窗图片中,此处不需要pm2
,{{1本身可以自动重启。这是理想的方法。答案 1 :(得分:0)
这实际上取决于您(或您的公司)希望如何组织工作流程和项目规模。
有时我也使用GIT存储库,因为这样更新非常简单:只需git pull
和(如果服务器文件已编辑)pm2 restart N
命令。
通过这种方式,您无需安装整个开发堆栈来编译(和缩小)捆绑包 - 我想您可以在安装了所有开发工具的本地计算机上工作。
请记住在安装仅在开发模式下需要的软件包时使用--dev
标志,这样可以使生产服务器尽可能保持苗条。
我发现一个好的做法是在最终的包文件名(包括js和css)中添加一些随机标记,然后在最终的html静态文件中注入,以避免刷新页面循环。
一旦你的dev机器上有捆绑文件,只需将它们上传到服务器(ftp,git,rsync,sshfs mount,无论你喜欢什么)和(如果服务器文件被编辑)重启/重新加载节点进程(Im使用pm2这个,真的很棒)。如果您只编辑了客户端文件,则不需要重新加载。
从这里开始,有很多方法可以或多或少地完成这项工作,例如git管道......但取决于具体情况。
编辑:this是一篇关于任务运行的好文章(gulp vs grunt vs vanilla npm ),虽然可能有点偏离主题,但它分析了常见部署过程的某些方面