ClojureScript

开发

Closure Compiler 开发

ClojureScript 与 Google Closure Compiler 紧密集成。许多 ClojureScript 特性,如 Node / ES6 模块处理,实际上是通过 Google Closure Compiler 支持提供的。在这些领域,对 ClojureScript 的贡献是通过直接贡献给 Google Closure Compiler 项目本身来完成的。

贡献到 Closure Compiler

Closure Compiler 团队使用 GitHub 来管理项目,并且对于附带提供解决方案的拉取请求的问题特别响应。为了贡献到 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

一旦您的测试通过,如果您还没有创建包含您的修复的分支,请创建一个分支并提交拉取请求。您的拉取请求可能应该链接到一个相应的 GitHub 问题。

最后一步是验证您的修复实际上解决了 ClojureScript 中的问题。

测试 Closure Compiler 与 ClojureScript 的兼容性

构建 Closure Compiler

mvn clean && mvn -DskipTests -pl externs/pom.xml,pom-main.xml,pom-main-unshaded.xml

这将在您的本地 Maven 中安装未阴影的 JAR,请注意版本。在 ClojureScript 仓库中,使用您喜欢的任何工具(例如,编辑 project.clj 或 deps.edn)更改 Closure Compiler 工件的依赖关系信息。

通过 ClojureScript 特定的测试验证 ClojureScript 问题是否已解决。