从我的网络应用程序中,当使用带有“:optimizations:none”的代码进行编译时,将所有js文件加载到浏览器后,“window”对象上大约有大约300个全局项目
但是,当使用“:optimizations :advanced”编译代码时,大约有 10K 全局项(函数和对象)。
看起来缩小策略正在使一切变得全局化。有没有办法改变它的行为?
这是一个重现 repo
运行“lein do clean && lein cljsbuild Once”并检查“lein-cljsbuild/example-projects/advanced/resources/public/js/main-debug.js”
#更新: 原因“:output-wrapper”不适用于我的情况是我在构建配置中使用“:modules”并且一个模块将依赖于另一个模块。编译器无法使用 (function(){})() 包装模块,因为它会破坏依赖关系。例如,模块 foo 必须从模块 bar 访问 var bar。
最佳答案
您可能需要查看 :output-wrapper
编译器选项:
https://clojurescript.org/reference/compiler-options#output-wrapper
关于javascript - ":optimizations :advanced"的全局变量/函数过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45830636/