我有一个在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
上进行测试。
非常感谢任何帮助!
答案 0 :(得分:1)
显然Heroku提供的git支持不会那样做。它 要求停止应用程序(通过运行适当的 终端上的命令),然后我需要进行git push(使用 终端)更新所有文件(这需要永远),而不是 只需要更新的那些,然后应用程序需要 重启(再次使用终端)。这非常令人沮丧 对于仍在开发中的应用程序,需要不断更新和 不能在当地进行测试(原因有很多)。
首先,在运行git push heroku master
之前,您无需停止应用。只需按下,平台即可构建,然后自动使用新代码重新启动应用程序。其次,git
使用差异算法,所以你没有推送所有文件 - 事实上你只是推动差异(假设你正确使用git)。第三,你不需要做最后的手动重启 - 平台已经为你做了推送。最后,我建议如果您的应用无法在本地进行测试,您可能需要重新考虑该应用的架构。听起来非常不便携。或许可以参考12factor.net获取一个好的架构清单。
在本地测试它然后在Heroku上发布它(好的)不会这样做,因为有些应用程序根本无法在localhost上测试。
您正在构建哪种类型的应用程序无法在生产环境之外进行测试?
无论如何,我所知道的最接近你正在寻找的东西是Dropbox Sync: