ClojureScript

開發

Closure Compiler 開發

ClojureScript 與 Google Closure Compiler 深度整合。許多 ClojureScript 的功能,像是 Node / ES6 模組處理,實際上是透過 Google Closure Compiler 的支援提供的。在這些領域,對 ClojureScript 的貢獻是直接貢獻到 Google Closure Compiler 專案本身。

貢獻到 Closure Compiler

Closure Compiler 團隊使用 GitHub 來管理專案,並且對於附帶解決方案的 Pull Request 的問題特別有回應。為了貢獻到 Closure Compiler 專案,您必須提交一份 Google 貢獻者協議。

Closure Compiler 開發

雖然文件不多,Closure Compiler 的 Java 程式碼庫出乎意料地容易上手。使用免費的 Java IDE,例如 IntelliJ Community Edition,可以大大簡化探索和理解 Closure Compiler 原始碼的過程。在定位 Closure Compiler 的錯誤來源時,Java IDE 也具有強大的逐步偵錯工具的額外好處。

一旦您認為您有修復程式,請使用您的修復程式建立一個分支,然後建立一個測試案例。

為 Closure Compiler 新增測試案例

為您的單元測試找到合適的測試案例檔案。要測試您的特定測試,您必須先建置 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 中的問題。

針對 ClojureScript 測試 Closure Compiler

建置 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 問題是否已解決。