如何远程更新实时Node.js Heroku应用程序?

时间:2015-08-24 13:50:49

标签: node.js git heroku ftp localhost

我有一个在Heroku上运行的Node.js应用程序

我在Heroku上传的Node.js文件夹/文件也驻留在我的计算机上

每当我更新计算机上的Node.js文件夹/文件时,我都希望这些更新也应用于Heroku上的文件夹/文件。

我希望能够在不必每次都停止,更新和重新启动我的Heroku应用程序的情况下这样做。

我所描述的基本上是一个与标准ftp连接相同的设置,每当我们对某个标准网站的静态文件进行local to remote更新时,我们都会使用该设置。

显然Heroku提供的git支持并不能做到这一点。它需要停止应用程序(通过在终端上运行适当的命令),然后我需要进行git push(使用终端)更新所有文件(这需要永远)而不只是需要更新的那些,然后需要重新启动应用程序(再次使用终端)。对于仍在开发中的应用程序来说,这是非常令人沮丧的,需要不断更新并且无法在本地进行测试(出于多种原因)。

每当在本地测试Node.js应用程序时,可以通过调用supervisor app.js而不是node app.js来启动应用程序。

它的作用是允许应用程序更新并且一旦发生(即,一旦我点击"保存")supervisor自动在本地重新启动应用程序。

我正在寻找与上述相似的内容,即将我的本地app文件夹链接到我的远程应用程序文件夹,并使用某种supervisor模式启动我的远程应用程序(在Heroku上),以便我的本地文件夹已更新,我的远程文件夹也已更改,应用程序会自动重新启动。

目前尝试测试Heroku应用程序(显然需要不断更新)非常令人沮丧。

在本地测试它然后在Heroku上发布它(好的)是不行的,因为某些应用程序根本无法在localhost上进行测试。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

  

显然Heroku提供的git支持不会那样做。它   要求停止应用程序(通过运行适当的   终端上的命令),然后我需要进行git push(使用   终端)更新所有文件(这需要永远),而不是   只需要更新的那些,然后应用程序需要   重启(再次使用终端)。这非常令人沮丧   对于仍在开发中的应用程序,需要不断更新和   不能在当地进行测试(原因有很多)。

首先,在运行git push heroku master之前,您无需停止应用。只需按下,平台即可构建,然后自动使用新代码重新启动应用程序。其次,git使用差异算法,所以你没有推送所有文件 - 事实上你只是推动差异(假设你正确使用git)。第三,你不需要做最后的手动重启 - 平台已经为你做了推送。最后,我建议如果您的应用无法在本地进行测试,您可能需要重新考虑该应用的架构。听起来非常不便携。或许可以参考12factor.net获取一个好的架构清单。

  

在本地测试它然后在Heroku上发布它(好的)不会这样做,因为有些应用程序根本无法在localhost上测试。

您正在构建哪种类型的应用程序无法在生产环境之外进行测试?

无论如何,我所知道的最接近你正在寻找的东西是Dropbox Sync: