评论者:alandipert
我也认为从不同位置获取源代码的构建将是极好的。
我考虑过的这种精神的一个替代方案是 "SourceSet" 方法。其想法是,不是通过协议直接教 CLJS 如何消费各种位置类型的源,而是提供构建 "SourceSet" 值的 API 以及一个将 SourceSet 作为输入的构建函数。我将 SourceSet 的最简单形式想象为一个命名空间到字符串源的映射。
使用一个无位置依赖且不可变的值来表示来源,第三方工具可以在调用编译之前消费、发出或转换这些值,而不必了解或关注CLJS内部工作原理。相反,CLJS无需关注SourceSets的构建方式。
这个想法是受到了boot的FileSets的启发,它们基本上是相同的,但是不能有“它适合内存”的假设。