我正在尝试改进用于无法使用 } 的情况(它是一个 Chrome 扩展程序,Chrome 的安全策略禁止在页面注入的情况下动态加载 JS)。因此,当使用下一个最快的优化 } 时,由于应用程序拉入了大量的依赖关系,它花费了很多时间(即使是小的更改也需要大约 30 秒)。我尝试使用新发布的模块功能将输出分成两个文件,一个包含所有依赖项,另一个包含我的代码,并观察到 ClojureScript 编译器不会跳过完全未被更改的源文件的模块的重新生成。
深入研究代码,它看起来像在 {{optimize-modules}} 函数中的 closure.clj 函数中有一个小的更改,我们可以在这里跳过完全未被更改的所有源文件的模块的输出。