2024 Clojure 状态调查 中分享您的想法!

欢迎!请查看 关于页面 了解更多关于如何使用此功能的信息。

0
ClojureScript
CLJS-2298 添加了对自动加载在“用户工作空间中找到的” {{user.cljs}} 或 {{user.cljc}} 文件的支持。特别是,这个修改变具体检查在类路径中找到的任何候选人是实际磁盘上的文件,而不是在 JAR 中发现的文件。(见 https://github.com/clojure/clojurescript/blob/6eedd0a08c49f7b0d4dcb30977b2fb38c90577bd/src/main/clojure/cljs/repl.cljc#L966)。

如果您通过 git 依赖依赖包含有 {{user.cljs}} 或 {{user.cljc}} 文件的库,那么仅检查它是否是文件作为保护措施是不够的。此外,我们应该排除 gitlibs 中找到的任何文件。我们可以通过重新使用像 {{cljs.closure/gitlibs-src?}} 这样的函数来实现这一点。(见 https://github.com/clojure/clojurescript/blob/c2f5aba2f59cf30dbc13c968d8ee3f0e4359d38c/src/main/clojure/cljs/closure.clj#L64)注意,我们不能直接使用此函数,因为它临时设置为返回 {{false}}。但是,可以将其中一些功能分解到一个 utility 命名空间中,并从 REPL 中重用。

2 答案

0

评论者:namenu

我不知道如何添加关于这个补丁的测试。

不过,我手动测试了

  • gitlibs 中的 {{user.cljs}} 不被自动加载。
  • 当前工作空间中的 {{user.cljs}} 仍然被自动加载。
0
参考:https://clojure.atlassian.net/browse/CLJS-2935(由 mfikes 报告)
...