评论者:alandipert
我也认为基于不同地方的源代码构建将非常棒。
关于这个方向的另一个我想到的替代方案是“SourceSet”方法。其想法是,而不是通过协议直接教授 CLJS 如何消费各种地方类型的源,提供一个用于构建“SourceSet”值的 API 以及一个将 SourceSet 作为输入的构建函数。我想象的 SourceSet 简单形式是一个将命名空间映射到字符串源的映射。
使用一个表示来源的值,这个值不带地点信息且不可变,第三方工具可以在调用编译前消费/发布/转换这些值,而无需了解或关注CLJS的内部实现。相反,CLJS也无需关心源集是如何构建的。
这个整个想法受到了boot的FileSets的启发,它们基本上做的是同样的事情,但不能假定“它适合内存”。