这真的很奇怪。我在我的project.clj中有这个:
:cljsbuild
{:builds
[{:id "async-tues-id"
:source-paths ["src/async_tues/cljs"]
:compiler {:optimizations :none
:pretty-print false
:output-dir "resources/compiler/"
:output-to "resources/main.js"}}]}
请注意,此处未启用source-map。
然后我在我的cljs文件中有这个:
(ns tues.page)
(enable-console-print!)
(println "hello from cljs!")
(println "hi from page.js")
在lein cljsbuild
之后,浏览器将空行打印到控制台。我会添加更多println
语句并执行它们......但是没有文本。
然后我将其添加到project.clj:
:source-map true
在新编辑之后,printlns会根据需要显示实际文本!现在为什么source-map与println
??
答案 0 :(得分:0)
如果您使用诸如“ lein newagent my-project”之类的东西来创建项目,则会在prod / cljs / my-project / prod.cljs中看到类似的内容。
(ns reagent.prod
(:require [reagent.core :as core]))
;;ignore println statements in prod
(set! *print-fn* (fn [& _]))
(core/init!)
要指定否:优化,我相信正确的值是:空白,而不是:无。 :simple和:advanced也有效(在生产中始终使用:advanced)。
这有点牵强,但也许打开:source-maps会导致:optimizations默认为一个更合乎逻辑的非生产值(因为:none无效),这在某种程度上导致了* print-fn *的覆盖。不会发生。