欢迎!请参阅 关于 页面,了解更多此处的信息。
CLJS 宏可能想通过 * . 访问当前 ns 的元数据。
重新编译命名空间时,命名空间元数据的更改不会反映到 * } 变量中,第一次编译的元数据将保持不变。这是因为分析器始终调用 {{create-ns}} 但不更新元数据。可能应该在该 {{parse 'ns'}} (链接:1)内更新它。Clojure 总是通过 {{ns}} 宏重置元数据。
一个潜在的冲突是当一个 {{.clj}} 和一个 {{.cljs}} 文件存在于同一个命名空间并为不同的元数据时。两个平台都重置元数据可能不是最佳选择,我们可能应该使用 {{vary-meta merge}} 代替?
(链接:1) https://github.com/clojure/clojurescript/blob/94b4e9cdc845c1345d28f8e1a339189bd3de6971/src/main/clojure/cljs/analyzer.cljc#L2312