簡體   English   中英

如何改進編輯依賴項和觀察主 Clojure/ClojureScript 動態 web 應用程序項目的變化的工作流程?

[英]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

顧名思義, supportingprincipal的依賴項。

目前,在這兩個存儲庫上工作的工作流程非常痛苦 我想知道是否有更好的方法。

這是當前的工作流程:

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並重新構建principallein 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM