gpt4 book ai didi

Clojure 不需要 cljc 文件

转载 作者:行者123 更新时间:2023-12-04 12:18:53 25 4
gpt4 key购买 nike

我需要在我的 Clojure (Garden) 和我的 ClojureScript (Reagent) 之间共享一个命名空间。

目前项目文件夹如下所示:

src/
clj/
name/
css.clj
cljs/
name/
core.cljs
cljc/
name/
config.cljc
config.cljc文件具有以下命名空间: (ns name.config) .

我试图从内部引用这个命名空间 clj/name/css.clj有一个要求。
(ns name.css
(:require [name.config :as config]))

但是,这会导致 Garden 编译错误。

Caused by: java.io.FileNotFoundException: Could not locate name/config__init.class or name/config.clj on classpath.



我想它甚至没有检查 cljc文件。

我加了 "src/cljc":source-paths向量在 project.clj:garden :builds但即使在重新启动构建过程后,我也会遇到同样的错误。

我在 Clojure 1.7.0 和 1.8.0 上看到了这种行为。

值得一提的是,它在 ClojureScript 中没有问题(使用 Figwheel 处理构建)。我可以毫无问题地要求和使用新的命名空间。

似乎我一定遗漏了一些非常简单的东西,因为在 .cljc 周围没有任何文档。文件甚至提到需要它们。

最佳答案

检查您的 project.clj 中是否使用 Clojure 1.7 或更高版本.此错误消息:

Caused by: java.io.FileNotFoundException: Could not locate name/config__init.class or name/config.clj on classpath.



表示您使用的是 Clojure 1.6 或更低版本,因为那些版本的 Clojure 只知道查找 .class.clj文件。

关于Clojure 不需要 cljc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35255367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com