当使用代码拆分以及高级优化(默认启用 :optimize-constants)时,预编译的关键词总是会编译到 cljs-base,即使它们仅由一个模块使用。
如何重现
- 解压附加的最低版本(基本上是从 https://script.clojure.org/guides/code-splitting)中稍作编辑的示例
- java -cp /path/to/cljs.jar:src clojure.main release.clj
- 检查生成的文件
实际行为
即使 :this-is-a-very-long-keyword 只在 bar.cljs 中使用,它也会被编译到 cljs_base.js 中。在第 286 行(已删除)
var ...,Rg=new L(null,"this-is-a-very-long-keyword","this-is-a-very-long-keyword",-1251510263),...;
期望行为
Rg 的定义应该在 bar.js 中。