Javascript 如何在不同的clojurescript项目中使用公共依赖项?

Javascript 如何在不同的clojurescript项目中使用公共依赖项?,javascript,reactjs,clojurescript,leiningen,reagent,Javascript,Reactjs,Clojurescript,Leiningen,Reagent,我写了一个clojurescript项目。它是一种试剂成分。现在我想在其他clojurescript项目中使用这个组件。这就是我要做的:我编译了我的cljs项目,然后我把一个结果编译文件放到另一个项目的js文件夹中。此外,我需要index.html中的该文件。最后,我从cljs文件调用我的组件 (.slider-view (.-views js/swipe) (clj->js [[:p "1"] [:p

我写了一个clojurescript项目。它是一种试剂成分。现在我想在其他clojurescript项目中使用这个组件。这就是我要做的:我编译了我的cljs项目,然后我把一个结果编译文件放到另一个项目的js文件夹中。此外,我需要index.html中的该文件。最后,我从cljs文件调用我的组件

(.slider-view (.-views js/swipe) (clj->js [[:p "1"]
                                           [:p "2"]
                                           [:p "3"]]))

它是有效的。但我有一个问题。我的项目和我连接组件的项目有共同的需求。例如React和ReactDOM。如何从我的项目中排除这两个引用,然后从另一个项目中连接它?是否有其他方法?例如,直接从另一个cljs项目中要求cljs名称空间

即使可以防止JavaScript库被包含两次,仍然会有大量ClojureScript标准库被编译两次。正如您所建议的,您将希望将第一个项目放在第二个项目的类路径上(通过将其添加到project.clj或等效项中),然后直接包含该名称空间。

基于Justin非常正确的答案

您描述的正是正常的ClojureScript依赖关系。在本例中,依赖项是您创建的,而不是其他人的现有库,但情况仍然相同

有一个重要的微妙之处需要注意。您可能希望同时开发两个项目。这可能看起来很棘手,因为依赖项通常需要一个版本号、部署和所有其他繁重的工作,而这些工作对于快速开发来说太痛苦了

幸运的是,标准ClojureScript工具提供了一个解决方案,称为Leiningen签出目录,它通过让您在主项目目录中放置一个指向依赖项的符号链接来工作

详细信息见文件章节;或者只是在网络上搜索“Clojure退房”,如果这种情况发生的话

随着对这些技术的深入,您可能会遇到一些涉及Figwheel工具的更微妙的问题。当您达到该阶段时,这可能也很有用