我一直在使用Clojure、ClojureScript、lein、影子cljs、reagent、试剂、Emacs和苹果酒来开发Clojure/ClojureScript动态web应用程序项目。
目前,该项目使用project.clj和shadow-cljs.edn声明依赖项。
关于改变事物的讨论是这样的:
1-我们将开始使用名为lein的莱茵-工具.戴普插件
2-此外,我们将调整shadow-cljs.edn文件,以便删除依赖项,并且该文件仅指示:
:dependencies true最后,我们将创建一个包含所有依赖项的新deps.edn文件。
目前尚不完全清楚这一进程的好处。
我可以看到一个:它们不是声明对shadow-cljs.edn和project.clj的依赖关系,而是位于一个文件:deps.edn中。
通过deps.edn进行依赖声明而不是通过:dependencies使用shadow-cljs.edn和project.clj还有另一个好处吗?
例如,这会影响托管在GitHub包上的Maven包的使用吗?deps.edn这样做更好吗?
发布于 2022-11-04 08:48:37
deps.edn的好处是它支持直接的git依赖关系(即。:git/url),以及一种简单的本地依赖机制(即。:local/root)。它也更加现代化,成为“默认”。
shadow-cljs.edn不支持这些特性,project.clj有一些通过插件或其他机制(例如。checkouts)。
因此,如果您想要这些特性,那么使用deps.edn是有意义的。但是,取决于项目的复杂程度,这可能不是一个容易的切换。
shadow-cljs最终并不关心您如何管理您的依赖关系,但是如果您将东西从shadow-cljs.edn中移出,您将失去它的“力量”。如果通过shadow-cljs.edn进行管理,它就会试图防止某些错误(例如。),当通过deps.edn运行时,它无法做到这一点。因此,您可能需要手动处理这些问题。它可能只是起作用,真的取决于你的项目。
https://stackoverflow.com/questions/74310616
复制相似问题