请分享您的想法,填写 2024 年 Clojure 调查问卷!

欢迎!请查看 关于 页面获取更多关于这个平台的信息。

0
core.contracts

我在开发一个 pedestal 应用。我使用了 core.contracts 来测试 clojure/clojurescript 共享代码(在 clojure 中)并取得了非常好的效果(至少对我来说是这样的)。然而,当我将包含 core.contracts 的命名空间在浏览器中打开时,尝试将其引入 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 could not find: 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 报告)
...