评论者:alandipert
我也认为根据不同地方来源的代码进行构建将会非常棒。
关于这个主题,我一直在考虑的一个备选方案是“SourceSet”方法。这种方法的理念是,不是通过协议直接教CLJS如何消费各种位置类型的代码,而是提供了一个API用于构建“SourceSet”值,并还有一个构建函数,该函数以SourceSet作为输入。我想象的SourceSet在它的最简单形式是一个命名空间到字符串源的映射。
使用一个代表源数据的值,这个值与位置无关且不可变,第三方工具可以在调用编译器之前消费/发射/转换这些值,而不需要了解或感兴趣于CLJS内部结构。反之,CLJS无需关心源集是如何构建的。
这个整个想法受到了boot的FileSets的启发,它们的工作原理基本相同,但不能有“它适合内存”的假设。