请分享您的想法,参与2024年Clojure状态调查!

欢迎!有关如何操作的更多信息,请参阅关于页面。

0
core.contracts

我正在开发一个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,它真的很酷。感谢你的工作。

1 答案

0
参考:https://clojure.atlassian.net/browse/CCONTRACTS-2(由alex+import报告)
...