欢迎!请参阅 关于 页面以了解有关如何操作的更多信息。
CLJS 宏可能希望通过 * . 访问当前 ns 的元数据。
当重新编译命名空间时,对 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