0

私は非常に単純なプロジェクトを持っています。boot と cljs を使用して、これまでで最も単純なプロジェクトを作成しました。正常にコンパイルされ、html で正しいログを確認できました。非同期の基本的なサポートを追加すると、次のメッセージが表示されました。

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]])

元の作業プロジェクトは、core.cljs ファイルのチャネルの require と def と、build.boot に追加された依存関係を除いて、同じ基本構造を持っていました。

4

1 に答える 1

2

これは、ClojureScript では、core.async がcljs.core.asyncではなく下にあるためclojure.core.asyncです。

したがって、ns フォームを次のように変更する必要があります。

(ns exemplo-cljs.core
  (:require [cljs.core.async :as async]))
于 2016-10-14T20:29:41.117 に答える