ClojureScript的reader/read-string函数返回null。

4
我将工作应用程序的clojurescript版本升级到0.0-2030,突然间reader/read-string返回null,例如:
(js/alert (str "reader returned ["  (reader/read-string "{1 2}") "]"))

显示为[]。我使用cljsbuild插件进行编译:

 :cljsbuild {:builds [{:source-paths ["src/cljs/main"],
                    :compiler {:pretty-print true,
                               :output-to "resources/public/cljs/main.js",
                               :optimizations :whitespace}}

reeader的定义如下:

(:require           
    [cljs.reader :as reader]

我可能做错了什么?

1个回答

2
我尝试按照这里详细说明的最小化指南设置了一个单一的ClojureScript项目:http://swannodette.github.io/2013/10/27/the-essence-of-clojurescript/ 该项目还使用相同的ClojureScript版本。
:dependencies [[org.clojure/clojure "1.5.1"]
                 [org.clojure/clojurescript "0.0-2030"]]

这是我使用的代码:

(ns hello-world.core
    (:require [cljs.reader :as reader]))

(js/alert (str "reader returned ["  (reader/read-string "{1 2}") "]"))

并且正常工作!


当然。我已经在这个项目上工作了几个月,这一部分一直都很好用。直到今天我进行了升级。所以我想知道可能出了什么问题。我不想设置一个新项目,我要修复我已经有的那个。 - Assen Kolov
2
@Assen,你尝试过执行 lein cljsbuild clean 吗?你可能有旧的编译文件留在那里。 - jbm
@jbm,感谢你,非常感谢你。尴尬的是,在发布之前我没有尝试过这个方法。问题已经解决了。 - Assen Kolov
我的回复是为了展示ClojureScript版本和读取器函数的工作原理,然后您需要尝试执行@Assen所说的lein clean和lein cljs build clean,我本来打算提议。 - tangrammer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接