简单的启动项目不与CLJS和异步工作



我有一个非常简单的项目。我用boot和cljs创建了最简单的项目。它编译成功,我能够在html中看到正确的日志。当我添加了对async的基本支持时,我得到了消息:

No such namespace: clojure.core.async, could not locate clojure/core/async.cljs, clojure/core/async.cljc, or Closure namespace "clojure.core.async"

项目结构如下:

exemplo_cljs
    html
       index.html
    src
       exemplo_cljs
           core.cljs
    build.boot

index.html的内容:

<!doctype html>
<html lang="en">
    <head>
        <title>Hello</title>
    </head>
    <body>
        <h2>Hello</h2>
        <script src="main.js"></script>
    </body>
</html>

core.cljs

(ns exemplo-cljs.core
  (:require [clojure.core.async :as async]))
(def exercise (async/chan))
;; enable cljs to print to the JS console of the browser
(enable-console-print!)
;; print to the console
(println "Hello, World 4!")

和build.boot

(set-env!
 :source-paths #{"src"}
 :resource-paths #{"html"}
 :dependencies '[[adzerk/boot-cljs "1.7.170-3"]
                 [org.clojure/core.async "0.2.371"]])
(require '[adzerk.boot-cljs :refer [cljs]])

原来的工作项目基本结构相同,只是在核心中需要和定义一个通道。CLJS文件和在build.boot

中添加的依赖项

这是因为在ClojureScript中,core。async存在于cljs.core.async下而不是clojure.core.async下。

所以你只需要把你的nsform改成:

(ns exemplo-cljs.core
  (:require [cljs.core.async :as async]))

相关内容

  • 没有找到相关文章

最新更新