请在2024 Clojure州调查!中分享您的想法。

欢迎!有关如何工作的更多信息,请参阅关于页面。

0
tools.namespace

以下是在REPL中复制的步骤
- (c.t.n.r/refresh) 成功
- 修改classpath中的任何文件
- (c.t.n.r/refresh) 失败,因为没有找到某些命名空间(不一定是相同的命名空间)

这总会在特定的项目中发生,但没有相对复杂程度相似的(已知)其他项目。对于涉及该项目的AOT编译/执行,require而不使用(c.t.n.r/refresh)也可以正常运行。对于(c.t.n.r/refresh),`clojure.tools.namespace.reload/track-reload-one`中的load-file可用作require :reload的替代品。除了require :reload之外,尚不清楚此错误的根本原因,或者为什么load-file可以工作,但这只是一个简单的补丁,且没有已知的缺点。目前我在REPL中每次都在热替换代码。

您可以通过https://github.com/alexandergunnarson/tools.namespace获取一个分支,如果需要的话,您可以向我提交补丁。

1 答案

0
参考:https://clojure.atlassian.net/browse/TNS-50(由alex+import报告)
...