gpt4 book ai didi

Clojure repl - 我如何确保 :reload-all does indeed reload all required namespaces?

转载 作者:行者123 更新时间:2023-12-04 12:51:01 25 4
gpt4 key购买 nike

在 lein REPL 中有一个奇怪且非常烦人的行为,更不用说经常耗时了。

即,如果我将 :reload-all 与命名空间一起使用,并且它所需的命名空间有错误,则 repl 不会告诉我任何相关信息。它只获取所述命名空间的最后一个有效构建,并且没有通知我它这样做了。

显然,在大多数情况下,这是非常不能令人满意的。因为如果所需的命名空间都没有更改,我不会使用 :reload-all ,如果它们更改并包含错误,我非常想知道它,而不是突然想知道为什么我正在执行的代码REPL 似乎做了一些与我在屏幕上显示的代码完全不同的事情。

有没有办法强制这种行为?

最佳答案

tools.namespace图书馆可以帮助你。

known issues通过 (require ... :reload)(require ... :reload-all) 重新加载代码。因此,尝试使用 clojure.tools.namespace/refresh 而不是 require:

user> (clojure.tools.namespace.repl/refresh)

它将扫描您的项目以查找已更改的文件/命名空间,并以正确的顺序重新加载它们及其依赖项。

refreshreport about errors在重新加载期间在依赖命名空间中。

此外,请阅读 requirements为您的代码使用此库和 potential issues .

关于Clojure repl - 我如何确保 :reload-all does indeed reload all required namespaces?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com