Compilation 如果我只是在编写clojurescript实用程序函数,是否需要cljsbuild插件?

Compilation 如果我只是在编写clojurescript实用程序函数,是否需要cljsbuild插件?,compilation,clojurescript,Compilation,Clojurescript,我是Clojurescript的初学者,我有一个疑问。现在我只是在CLJS文件中编写了一组实用函数,这些函数将用于其他CLJS项目 那么,我还需要使用cljsbuild插件将我的CLJS文件编译成JS吗?如果没有,我如何编译我的CLJS源文件以检查错误和所有错误?要开始,我建议运行CLJS REPL。一种选择是使用bootcljs。指示在这里设置 或者,如果您的函数简单或纯粹,并且没有外部依赖项,则可以尝试浏览器REPL,例如无需安装 无论哪种方式,您都可以将函数粘贴到REPL中并对其进行测试。

我是Clojurescript的初学者,我有一个疑问。现在我只是在CLJS文件中编写了一组实用函数,这些函数将用于其他CLJS项目


那么,我还需要使用cljsbuild插件将我的CLJS文件编译成JS吗?如果没有,我如何编译我的CLJS源文件以检查错误和所有错误?

要开始,我建议运行CLJS REPL。一种选择是使用bootcljs。指示在这里设置

或者,如果您的函数简单或纯粹,并且没有外部依赖项,则可以尝试浏览器REPL,例如无需安装


无论哪种方式,您都可以将函数粘贴到REPL中并对其进行测试。你会得到即时反馈。这应该让你开始。稍后,您可以添加测试基础架构来自动化测试。玩得开心

首先,我建议运行CLJS REPL。一种选择是使用bootcljs。指示在这里设置

或者,如果您的函数简单或纯粹,并且没有外部依赖项,则可以尝试浏览器REPL,例如无需安装


无论哪种方式,您都可以将函数粘贴到REPL中并对其进行测试。你会得到即时反馈。这应该让你开始。稍后,您可以添加测试基础架构来自动化测试。玩得开心

当ClojureScript项目依赖于库中的ClojureScript代码时,它直接依赖于库的ClojureScript源代码。(无需出于依赖性目的将该库的代码编译为JavaScript,事实上,该模型并不真正受支持。)

ClojureScript项目如何依赖于ClojureScript库的代码?通常,库的代码放在JAR中,JAR放在项目的Java类路径上。(此类JAR通常部署到Clojars或Maven central。)

一种更新、更灵活的替代方法是使用ClojureScript项目依赖于JAR(如前一段所述),或者直接依赖于库在磁盘上的本地路径(使用
:local/root
)或库的GitHub源代码(使用
:git/url
:sha

要在本地编译和测试代码,可以使用在REPL中加载代码并进行练习。这通常可以简单地设置
deps.edn
,然后运行

clj -m cljs.main
然后使用
(require my ns.core)
将名称空间加载到REPL中。关于这一点,这本指南非常值得一读

您可以使用
cljs.main
运行基于
cljs.test
的测试。下面是使用节点运行这样的测试的一个示例


对于编译和测试ClojureScript库代码,还有其他更复杂、功能更丰富的选项;上面介绍了ClojureScript本身附带的一些简单选项。

当ClojureScript项目依赖于库中的ClojureScript代码时,它直接依赖于库的ClojureScript源代码。(无需出于依赖性目的将该库的代码编译为JavaScript,事实上,该模型并不真正受支持。)

ClojureScript项目如何依赖于ClojureScript库的代码?通常,库的代码放在JAR中,JAR放在项目的Java类路径上。(此类JAR通常部署到Clojars或Maven central。)

一种更新、更灵活的替代方法是使用ClojureScript项目依赖于JAR(如前一段所述),或者直接依赖于库在磁盘上的本地路径(使用
:local/root
)或库的GitHub源代码(使用
:git/url
:sha

要在本地编译和测试代码,可以使用在REPL中加载代码并进行练习。这通常可以简单地设置
deps.edn
,然后运行

clj -m cljs.main
然后使用
(require my ns.core)
将名称空间加载到REPL中。关于这一点,这本指南非常值得一读

您可以使用
cljs.main
运行基于
cljs.test
的测试。下面是使用节点运行这样的测试的一个示例

对于编译和测试ClojureScript库代码,还有其他更复杂、功能更丰富的选项;上面介绍了ClojureScript本身附带的一些简单选项