【问题标题】:How do I update a live Node.js Heroku App remotely?如何远程更新实时 Node.js Heroku 应用程序?
【发布时间】:2015-11-17 23:29:06
【问题描述】:

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

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

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

我希望能够做到这一点,而不必每次都停止、更新和重新启动我的 Heroku 应用程序。

我所描述的基本上是一种等效于标准 ftp 连接的设置,每当我们对某些标准网站的静态文件进行local to remote 更新时,我们都会使用它。

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

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

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

我正在寻找与上述类似的东西,即将我的本地应用程序文件夹链接到我的远程应用程序文件夹并使用一些 supervisor 模式启动我的远程应用程序(在 Heroku 上),以便我的本地文件夹更新后,我的远程文件夹也被更改了,应用程序自动重新启动。

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

在本地测试它然后在 Heroku 上发布它(永远)是不行的,因为有些应用根本无法在 localhost 上测试。

任何帮助将不胜感激!

【问题讨论】:

    标签: node.js git heroku ftp localhost


    【解决方案1】:

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

    首先,您无需在运行git push heroku master 之前停止您的应用程序。只需推送,平台将自动构建,然后使用新代码重新启动您的应用程序。其次,git 使用差异算法,因此您不会推送所有文件 - 实际上您只是推送差异(假设您正确使用 git)。第三,您不需要进行最终的手动重启——平台已经在推送时为您完成了这项工作。最后,我建议如果您的应用无法在本地进行测试,您可能需要重新考虑该应用的架构。听起来很不便携。或许可以参考 12factor.net 以获得良好的架构清单。

    在本地测试它然后在 Heroku 上发布它(永远)是不行的,因为有些应用根本无法在 localhost 上测试。

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

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

    【讨论】:

    • 感谢您的回复@hunterloftis。我将研究保管箱同步。如果正确使用 git 可以解决我遇到的问题,为什么这些人会寻找类似的解决方案:stackoverflow.com/questions/9131496/…stackoverflow.com/questions/13727961/…,除非我误解了他们的帖子。我正在构建一个 Shopify 应用程序。不幸的是,Shopify 不允许与 localhost 通信。
    • 这些问题都与重启 Heroku 无关;这只是在您在本地开发时重新启动(例如,在节点中使用nodemon)。您自己测试非常容易 - 只需推送一个应用程序,进行更改,然后再次推送它,然后运行`heroku open`。该应用程序将在您无需停止/重新启动的情况下更新。
    猜你喜欢
    • 2016-10-20
    • 2023-03-23
    • 2011-10-19
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多