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

时间:2018-03-22 06:40:28

标签: javascript reactjs clojurescript leiningen reagent

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

以贾斯汀的正确答案为基础...

您所描述的完全是正常的ClojureScript依赖关系。在这种情况下,依赖关系是您创建的东西,而不是别人的现有库,但是情况仍然相同。

有一个重要的细微之处要注意。您可能需要同时开发两个项目。这似乎很棘手,因为依赖项通常需要版本号,部署以及所有繁重的工作,而这些工作对于快速开发来说太痛苦了。

幸运的是,标准的ClojureScript工具提供了一个解决方案,称为Leiningen checkouts目录,该目录的工作方式是让您将依赖项的符号链接放在主项目目录中。

详细信息在checkout-dependencies文档的Leiningen部分中;或只是在网络上搜索“ Clojure结帐”(如果有的话)。

随着您进一步了解这些技术,您可能会遇到一些涉及Figwheel工具的细微问题。当您达到该阶段时,此article也可能会有用。