2024 Clojure 状态调查!中分享您的想法。

欢迎!请参阅关于页面以获取更多关于该工作的信息。

0
ClojureScript

当在浏览器 REPL 的 --init 文件中时,处理 {{(require 'cljs.js)}} 会出现失败。我没有找到其他命名空间会出现这个问题(例如,{{clojure.set}} 不会有这个问题)。

重现

`
(require 'cljs.js)

(prn cljs.js/empty-state)
`

$ clj -Srepro -m cljs.main -re browser -i foo.cljs -r TypeError: undefined is not an object (evaluating 'cljs.js.empty_state') cljs.user=>

与 Node 一起时运行正常

`
$ clj -Srepro -m cljs.main -re node -i foo.cljs -r

object[cljs$js$empty_state]

cljs.user=>
`

2 答案

0

评论者:mfikes

解决方案

在 {{-i}} 前明确添加 {{-e}} 和 {{require}}

clj -Srepro -m cljs.main -re browser -e "(require 'cljs.js)" -i foo.cljs -r

这个解决方案很奇怪,因为如果您使用它,您仍然需要在 {{foo.cljs}} 文件中包含 require。

0
参考:https://clojure.atlassian.net/browse/CLJS-2663 (由 mfikes 报告)
...