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也无需关心源集是如何构建的。

这个整个想法受到了boot的FileSets的启发,它们基本上做的是同样的事情,但不能假定“它适合内存”。

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