如何在运行时重新加载raku模块以进行调试?

Dav*_*ero 7 raku

我在raku rest / API应用程序上动态加载模块。

我想避免每次对模块进行任何修改时服务器都重新启动。

有没有一种方法可以在您每次调用require时重新加载raku模块?

try require ::('Foo');
Run Code Online (Sandbox Code Playgroud)

Hol*_*lli 6

Cro做到。您可以在Cro之上构建服务器,这就是我的建议。另外,您可以研究Cro代码以了解其如何处理自动重启。Cro :: Tools :: Runner是一个很好的起点方法。


jjm*_*elo 4

您必须考虑到所有模块在加载之前都已预编译。您加载的不是源代码,而是从中生成的CompUnit.precomp ,默认情况下位于目录中。例如,此预编译还负责版本,但主要是它是字节码,而不是源代码。

除了掌握该机器(即检查源代码中是否有更改,预编译它,加载预编译的二进制文件(无论它们在哪里)并运行它们)之外,没有简单的解决方法,所以我认为,在这个情况下,最好问问自己是否真的有这样的用例;也许你需要做的是以某种方式加速服务器重新启动,也许通过使用sake自动化,或者从git钩子运行集成测试,而不需要重新启动服务器