mvn clean && mvn -DskipTests -pl externs/pom.xml,pom-main.xml,pom-main-shaded.xml
ClojureScript 與 Google Closure Compiler 深度整合。許多 ClojureScript 的功能,像是 Node / ES6 模組處理,實際上是透過 Google Closure Compiler 的支援提供的。在這些領域,對 ClojureScript 的貢獻是直接貢獻到 Google Closure Compiler 專案本身。
Closure Compiler 團隊使用 GitHub 來管理專案,並且對於附帶解決方案的 Pull Request 的問題特別有回應。為了貢獻到 Closure Compiler 專案,您必須提交一份 Google 貢獻者協議。
雖然文件不多,Closure Compiler 的 Java 程式碼庫出乎意料地容易上手。使用免費的 Java IDE,例如 IntelliJ Community Edition,可以大大簡化探索和理解 Closure Compiler 原始碼的過程。在定位 Closure Compiler 的錯誤來源時,Java IDE 也具有強大的逐步偵錯工具的額外好處。
一旦您認為您有修復程式,請使用您的修復程式建立一個分支,然後建立一個測試案例。
為您的單元測試找到合適的測試案例檔案。要測試您的特定測試,您必須先建置 Closure Compiler
mvn clean && mvn -DskipTests -pl externs/pom.xml,pom-main.xml,pom-main-shaded.xml
此時,除非您需要重新編譯您的編譯器變更,否則您可以簡單地編譯並執行您的測試案例,這會花費較少的時間。在以下內容中,請將 TestClass#testMethod
替換為您正在測試的類別和方法。
mvn -pl pom-main.xml compiler:testCompile surefire:test -Dtest=TestClass#testMethod
一旦您的測試通過,如果您還沒有建立一個包含您的修復程式的分支,請建立一個分支並提交 Pull Request。您的 Pull Request 應該連結到相應的 GitHub 問題。
最後一步是驗證您的修復程式實際上解決了 ClojureScript 中的問題。
建置 Closure Compiler
mvn clean && mvn -DskipTests -pl externs/pom.xml,pom-main.xml,pom-main-unshaded.xml
這會將未遮蔽的 JAR 安裝在您的本機 Maven 中,請記下版本。在 ClojureScript 儲存庫中,使用您喜歡的工具(例如,編輯 project.clj 或 deps.edn)變更 Closure Compiler 成品的相依性資訊。
透過 ClojureScript 特定的測試來測試 ClojureScript 問題是否已解決。