我写了一个clojurescript项目。它是试剂组分。现在我想在其他clojurescript项目中使用这个组件。这就是我做的:我编译了我的cljs项目,然后我将结果编译文件放到其他项目的js文件夹中。此外,我需要index.html中的文件。最后,我从cljs文件中调用我的组件
(.slider-view (.-views js/swipe) (clj->js [[:p "1"]
[:p "2"]
[:p "3"]]))
它有效。但我有一个问题。我连接组件的项目和项目有共同的要求。例如React和ReactDOM。如何从我的项目中排除这两个引用,然后从另一个项目连接它?有替代方法吗?例如,直接从另一个cljs项目中要求cljs命名空间
答案 0 :(得分:0)
即使您可以阻止JavaScript库被包含两次,您仍然会有两次编译的ClojureScript标准库的大块。正如您所建议的那样,您需要将第一个项目放在第二个项目的类路径中(通过将其添加到project.clj或等效项目中),然后直接包含该命名空间。
答案 1 :(得分:0)
以贾斯汀的正确答案为基础...
您所描述的完全是正常的ClojureScript依赖关系。在这种情况下,依赖关系是您创建的东西,而不是别人的现有库,但是情况仍然相同。
有一个重要的细微之处要注意。您可能需要同时开发两个项目。这似乎很棘手,因为依赖项通常需要版本号,部署以及所有繁重的工作,而这些工作对于快速开发来说太痛苦了。
幸运的是,标准的ClojureScript工具提供了一个解决方案,称为Leiningen checkouts目录,该目录的工作方式是让您将依赖项的符号链接放在主项目目录中。
详细信息在checkout-dependencies文档的Leiningen部分中;或只是在网络上搜索“ Clojure结帐”(如果有的话)。
随着您进一步了解这些技术,您可能会遇到一些涉及Figwheel工具的细微问题。当您达到该阶段时,此article也可能会有用。