【问题标题】:Server side programming language/framework that support hot-reload支持热重载的服务器端编程语言/框架
【发布时间】:2014-09-25 17:12:37
【问题描述】:

是否有任何其他支持热重载或实时编码的服务器端语言(有或没有框架),所以当我们开发时,我们只需要:

  1. 启动网络服务器
  2. 编辑源代码
  3. 在浏览器上尝试(无需重新启动服务器)

类似于 PHP

我知道的其他语言可以做到这一点:

  • 红宝石/西纳特拉
    • sinatra-reloader gem(有时不工作)
    • 重新运行 (*
  • nodejs
    • 结节模块
    • 节点主管模块
    • nodemon (*

(* 有变化时自动重启服务器,并不是真正的热重载

还有其他语言可以做到这一点吗?如果可能的话,在浏览器(不在终端/控制台)上显示错误(文件名和行号,或完整的堆栈跟踪),所以我不必从代码编辑器切换到浏览器,然后再到控制台查看错误。

【问题讨论】:

  • Tomcat 和 Java web-apps 可以做到这一点。

标签: web server-side


【解决方案1】:

您可以使用 Mojolicious 框架尝试 Perl:http://mojolicio.us/(使用 morbo 服务器)。

也可以使用 Grails 框架通过 Groovy/Java 实现:http://grails.org

【讨论】:

    【解决方案2】:

    您可以将 Erlang 用作 Web 服务器,该服务器旨在允许您在程序启动并运行时热交换整个代码模块。不过,函数式编程范式确实需要一点时间来适应......

    How to write a simple webserver in Erlang?

    我希望这会有所帮助...

    【讨论】:

      【解决方案3】:

      我认为您要求的实际上是所谓的实时重载,热重载是我相信只有 Erlang 才能真正完成的事情。

      通过为 Grunt 或 Gulp 配置和添加插件,您可以观察任何列表/文件类型的变化并描述要启动的任何操作。 Here is a plugin 代表咕噜声。通过这种方法,任何语言都可以获得这种能力。

      附带说明,Django (Python) 也具有自动重启功能。但这并不意味着 Python 语言内置了它,Django 使用类似 Grunt 的技巧来重新启动其开发服务器。

      【讨论】:

        【解决方案4】:

        Revel for Go 可以这样做,或者Beego,不同的是 Revel 只在源代码和新请求发生变化时重新编译(所以效率更高),Beego 每次都重新编译源代码更改。

        编辑:Beego 1.3.0 删除了它的热重载功能 T__T

        【讨论】:

          猜你喜欢
          • 2014-04-02
          • 2014-02-21
          • 1970-01-01
          • 2016-02-06
          • 2010-10-27
          • 2015-08-22
          • 2015-09-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多