请在2024 年 Clojure 状态调查!中分享您的想法。

欢迎!请查阅关于页面以获取更多有关如何使用该功能的信息。

0
ClojureScript

目前构建基于磁盘上的文件。理想的情况是能够获取内存中的构建、基于 WebDAV 的构建、基于 S3 的构建等。许多这些替代策略不在 ClojureScript 编译器的范畴内,但这并不意味着我们不应该提供用户控制行为的所需钩子。

3 答案

0

评论者:thheller

我和最近开启的一些问题(CLJS-900、CLJS-851、CLJS-899 等)有一些重叠之处,与我之前在 shadow-build 中做的有些相似(链接:1)。基于内存的构建实际上是可能的,因为只有在被要求时才会接触磁盘,尽管 API 可能需要一些清理。

无论如何,可能需要协调这些努力,以使 CLJS 对每个人更易于访问。

(链接:1) https://github.com/thheller/shadow-build

0

评论者:alandipert

我也认为从不同位置获取源代码的构建将是极好的。

我考虑过的这种精神的一个替代方案是 "SourceSet" 方法。其想法是,不是通过协议直接教 CLJS 如何消费各种位置类型的源,而是提供构建 "SourceSet" 值的 API 以及一个将 SourceSet 作为输入的构建函数。我将 SourceSet 的最简单形式想象为一个命名空间到字符串源的映射。

使用一个无位置依赖且不可变的值来表示来源,第三方工具可以在调用编译之前消费、发出或转换这些值,而不必了解或关注CLJS内部工作原理。相反,CLJS无需关注SourceSets的构建方式。

这个想法是受到了boot的FileSets的启发,它们基本上是相同的,但是不能有“它适合内存”的假设。

0
参考: https://clojure.atlassian.net/browse/CLJS-901(由dnolen报告)
...