Compilation def的Clojurescript自编译
Clojurescript 1.7现在支持自编译(请参阅)。我可以编译如下代码Compilation def的Clojurescript自编译,compilation,clojurescript,Compilation,Clojurescript,Clojurescript 1.7现在支持自编译(请参阅)。我可以编译如下代码 (ns self-compile.core (:require cljs.js)) (enable-console-print!) (set! cljs.js/*eval-fn* cljs.js/js-eval) (def state (cljs.js/empty-state)) (cljs.js/eval-str state "(+ 1 2)" (fn [response]
(ns self-compile.core
(:require cljs.js))
(enable-console-print!)
(set! cljs.js/*eval-fn* cljs.js/js-eval)
(def state (cljs.js/empty-state))
(cljs.js/eval-str state "(+ 1 2)"
(fn [response] ...))
这适用于大多数代码,除了给出错误的(def a 3)
,:data{:tag:cljs/analysis error},:cause{object[TypeError TypeError:Cannot set property'a'of undefined]}
如何修复设置?我也有同样的问题,下面是我要做的几件事,以使其正常工作:
eval str
,您可能需要传递以下选项:
:context :expr
:def-emits-var true
:ns 'cljs.user
def
之前,请先尝试评估(ns cljs.user)
请看我猜您需要在名称空间中调用它?是的,但不知道如何在cljs.js中调用它。