【问题标题】:How to use common dependencies in different clojurescript projects?如何在不同的 clojurescript 项目中使用公共依赖项?
【发布时间】:2018-08-31 12:07:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript reactjs clojurescript leiningen reagent


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      您所描述的正是正常的 ClojureScript 依赖关系。在这种情况下,依赖是你自己创建的,而不是别人现有的库,但还是一样的情况。

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

      幸运的是,标准的 ClojureScript 工具提供了一个解决方案,称为 Leiningen checkouts 目录,它允许您在主项目目录中放置一个指向您的依赖项的符号链接。

      详细信息在Leiningen 文档的checkout-dependencies 部分;或者只是在网络上搜索“Clojure checkouts”,如果它有衰减的话。

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

      【讨论】:

        猜你喜欢
        • 2016-03-24
        • 1970-01-01
        • 2019-12-19
        • 1970-01-01
        • 1970-01-01
        • 2022-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多