2024 Clojure调查中分享您的想法!

欢迎!有关如何工作的更多信息,请参阅关于页面。

0
ClojureScript

通常很有用,但主要用于将clj.loader/set-loaded!调用添加到用户文件中。

5 个答案

0

评论者:thheller

在{{shadow-cljs}}中,每个{{:module}}对我有4个属性。

  • {{:prepend}}被视为文本,例如许可协议头部。可以包含JS,但不会通过优化。
  • {{:prepend-js}}被视为将通过封闭优化进行的JS代码
  • {{:append-js}}
  • {{:append}}

我认为保留这四个并区分"文本"和"JS"是有价值的。{{shadow.loader}}完全通过这些属性实现。

0

评论者:dnolen

我对这个想法产生了一些疑虑,因为我认为我们不需要为CLJS-2157打开它,这就是为什么我最初打开它。

0

评论者:thheller

set-loaded!应每个模块只调用一次,因此应附加到模块本身而不是模块中的单个文件。

通过向单个文件追加,最终可能会多次调用具有多个入口的模块。据我所知,该调用不是幂等的,可能会导致事件多次触发。至少,它可能会在完整模块实际加载之前调用set-loaded!。因为这会立即触发可能导致不良结果的回调。

配置选项对加载器有用,不仅限于加载器。

0

评论者:dnolen

托马斯据我了解,ModuleManager.setLoaded是幂等的。我没有在本地测试中遇到任何问题。如果您能提供一个失败的示例,请自由提供,但我自己没有找到。

0
...