[英]How to improve the workflow of editing dependencies and watching the changes on a main Clojure/ClojureScript dynamic web app project?
我一直在使用 Clojure、ClojureScript、lein、shadow-cljs、Emacs 和 CIDER 來處理 Clojure/ClojureScript動態Z2567A5EC9705EB7AC2C984033E0618D 項目。
有主存儲庫,我們稱它為principal
。 還有一個支持存儲庫,我們稱它為supporting
.
好的。 在我的本地~/projects
文件夾中,我有~/projects/principal/
和~/projects/supporting
。
顧名思義, supporting
是principal
的依賴項。
目前,在這兩個存儲庫上工作的工作流程非常痛苦。 我想知道是否有更好的方法。
這是當前的工作流程:
1 - 使用以下命令在principal
上構建項目: cider-jack-in-cljs,
我選擇shadow-cljs
,然后選擇shadow
作為 REPL 類型,並選擇app
作為構建選項。
2 - 如果principal
需要對supporting
接口進行調整,則無法直接編輯supporting
並實時觀看更改。
3 - 因此,我復制 function 以調整supporting
並將其粘貼到principal
上。 然后,我調整命名空間和一些名稱。 我進行調整並調整調用。 更重要的是,我能夠看到本地主機上顯示的實時應用程序的變化。
4 - 經過一些測試,一切似乎都正常。
5 - 現在,是時候在supporting
存儲庫上編輯內容了。 這一次,使用正確的命名空間和名稱。 此外,是時候刪除main
上的臨時副本了
6 - 在對supporting
進行新的lein install
之后,如果不重新構建整個principal
,就不可能看到supporting
的變化。
7 - 在支持、退出watch app
並重新構建principal
的lein install
后,我可以看到應用程序實時並檢查是否一切正常。
有沒有更好的方法來達到相同的結果?
就 shadow-cljs 而言,它總是會監視文件。 唯一的規則是它不監視.jar
中的文件,因為這些文件無法更改。 所以,你只需要告訴 shadow-cljs 它在哪里可以找到文件。
您沒有指定如何管理依賴項,所以我假設您只是將它們放在shadow-cljs.edn
:dependencies
中。
讓shadow-cljs
監視supporting
文件的一種方法是直接添加源路徑。
{:source-paths ["src/main" "../supporting/src/main"]
:dependencies [[your/supporting "0.1.0"]]
:builds ...}
您也保留了依賴關系,但是通過包含源路徑條目,您可以確保這些文件用於已安裝的.jar
中的文件。 您保留聲明的supporting
依賴項,以便正確獲取其依賴項。
另一種選擇是在project.clj
中使用lein
checkouts
和管理依賴項。 lein
還可以通過在項目外部添加源路徑來使用上述技巧。
另一種選擇是使用deps.edn
來管理依賴項並通過:local/root
聲明supporting
的 dep。
{:paths ["src/main"]
:deps {your/supporting {:local/root "../supporting"}}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.