我正在开发一个pedestal应用程序。我在测试clojure/clojurescript共享代码(在clojure中)时充分利用了core.contracts。但是,当我在浏览器中打开代码并尝试将使用core.contracts的namespace引入clojurescript时,我遇到了以下错误。我写的约束条件实际上并没有使用任何本地Java类型(至少我觉得没有)。我主要只是在检查事物的值是否与预期的输入和输出相符。
在我的behavior.clj中,我有
(ns ^:shared com.samedhi.contracts.app.behavior
(:require (link: clojure.string :as string)
(link: io.pedestal.app.messages :as msg)
(link: clojure.zip :as z))
(:use (link: clojure.core.contracts :only [contract with-constraints)]
(link: clojure.core.contracts.constraints :only [defconstrainedfn])
(link: clojure.test :only [is])))
这编译成cljs为
...
goog.require('clojure.core.contracts.constraints');
goog.require('com.samedhi.quizry.app.quiz');
goog.require('clojure.core.contracts');
goog.require('clojure.test');
...
当我在data-ui视图中查看时,这会抛出javascript异常,表明goog.require('clojure.core.contracts.constraints')时说
errorMessage: "goog.require找不到: clojure.core.contracts.constraints"
name: "clojure.core.contracts.constraints"
我在clojurescript中使用core.contracts需要特殊导入方式吗?
顺便说一下,我真的很喜欢core contracts,它真的很酷。感谢你的工作。