当在启动 clojure 时启用别名时,在处理(传递性)依赖的 deps.edn
文件时传播这些别名有意义吗?
这与以下内容相关,但不同:允许指定指向 deps.edn 项目的坐标中的别名(JIRA TDEPS-116)。
用例
我正在开发许多相互关联的库。其中之一,lambdaisland/chui-ui
,有一个对 garden 的开发依赖。发布的版本不需要 garden,它包含编译后的 css。
chui-ui
是 chui
的依赖项,而 chui
是 kaocha-cljs2
的依赖项。在我对这些库进行工作时,我使用 :local/root
来设置依赖项,这样我就可以轻松地在这些不同的源之间工作。
;; chui-ui {:aliases {:dev {:extra-deps {garden ...}}}}
;; chui {:deps {chui-ui {:local/root "modules/chui-ui"}}}
;; kaocha-cljs2 {:deps {chui {:local/root "../chui"}}}
但是,这不起作用,因为当我开始在 chui
或 kaocha-cljs2
内部启动 clojure -A:dev
时,garden 依赖项并未被识别。为了使此用法正常工作,我需要将那个包含 garden 的 :dev
别名复制到顶级项目中,即使 chui 或 kaocha-cljs2 不关心 garden。