支持热重载的服务器端编程语言/框架

时间:2014-04-22 08:04:18

标签: web server-side

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

  1. 启动网络服务器
  2. 编辑源代码
  3. 试用浏览器(无需重启服务器)
  4. 与PHP类似

    我知道其他一些能够做到这一点的语言:

    • 红宝石/屈
      • sinatra-reloader gem(有时不工作)
      • 重新运行(*
    • 的NodeJS
      • 结节模块
      • node-supervisor module
      • nodemon(*

    (*当有更改时自动重启服务器,而不是真正的热重载

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您可以使用Erlang作为Web服务器,该服务器旨在允许您在程序启动和运行时热交换整个代码模块。虽然,函数式编程范例确实需要一段时间才能习惯......

How to write a simple webserver in Erlang?

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

答案 2 :(得分:1)

我认为你要求的实际上是实时重载,热重载是我认为只有Erlang才能真正实现的。

通过配置和添加插件到Grunt或Gulp,您可以监视任何列表/类型文件的更改并描述要启动的任何操作。 Grunt Here is a plugin。使用这种方法,任何语言都可以获得这种能力。

作为旁注,Django(Python)也有自动重启。但这并不意味着Python语言内置了它,Django使用类似Grunt的技巧来重新启动它的开发服务器。

答案 3 :(得分:0)

RevelGo可以执行此操作,或者Beego,区别在于Revel只在源代码和新请求发生更改时重新编译(因此效率更高),每次有源代码更改时,Beego都会重新编译。

编辑:Beego 1.3.0删除其热重载功能T__T