NodeJS服务器端应用程序部署的一致性

时间:2016-12-15 13:37:27

标签: javascript node.js git webserver node-modules

我正在用Angular编写一个nodejs应用程序作为我的前端。 为此,我将Git作为我的代码管理服务器。 对于客户来说,我正在进行缩小,它已准备好投入生产。

但我不确定,如何为生产准备服务器端文件。 我们需要将所有Git文件夹复制到生产服务器吗? 让我知道部署nodejs服务器应用程序的最佳方法。

2 个答案:

答案 0 :(得分:1)

  1. 您可以使用pm2作为守护程序,以便始终保持nodejs应用程序的正常运行。
  2. 尽量不在回购中包含node_modules,因为不同的设备有不同的设置/安装,除非你npm install,否则你无法判断一个包在运行之前是否有效。
  3. 如果您熟悉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 ),虽然可能有点偏离主题,但它分析了常见部署过程的某些方面