gpt4 book ai didi

clojure - 在 ClojureScript 项目中包含 .clj 文件

转载 作者:行者123 更新时间:2023-12-02 03:19:28 25 4
gpt4 key购买 nike

我正在使用 ClojureScript 构建一个 Node.js 应用程序并测试宏。

目录结构:

├── project.clj
└── src
   └── lists
   ├── core.cljs
   └── lib.clj

project.clj:

(defproject lists "0.1.0-SNAPSHOT"
:source-paths ["src/"]
:dependencies [[org.clojure/clojure "1.7.0"]]
:plugins [[lein-cljsbuild "1.1.2"]]
:cljsbuild {:builds
[{:source-paths ["src"]
:compiler {:output-to "target/lists.js"
:optimizations :simple
:target :nodejs}}]})

src/lists/core.cljs:

(ns lists.core
(:require [lists.lib :as lib :include-macros true]))

(enable-console-print!)

(lib/defmain [& args]
(console.log "hello world"))

src/lists/lib.clj:

(ns lists.lib)

(defmacro defmain [& body]
`(set! *main-cli-fn* (fn ~@body)))

当我运行一次 lein cljsbuild 时,我得到一个巨大的错误回溯,其中包含:

Caused by: clojure.lang.ExceptionInfo: No such namespace: lists.lib, could not locate lists/lib.cljs or lists/lib.cljc at line 1 src/lists/core.cljs {:file "src/lists/core.cljs", :line 1, :column 1, :tag :cljs/analysis-error}

文件夹结构正确,:source-paths 出现在两个外层defproject 调用和内部 :cljsbuild :builds 对象。更奇怪的是有时它不打印任何东西就退出了。有人有什么想法吗?

最佳答案

cljsbuild 抛出异常,因为它不理解 .clj 文件,它正在“src”目录中寻找 .cljs 或 .cljc 文件。您必须将 lib.clj 重命名为 lib.cljc 检查 using cljc在 clojurescript wiki 上。

关于clojure - 在 ClojureScript 项目中包含 .clj 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34427440/

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