ClojureScript cljsbuild在没有优化的情况下不会加载依赖项

时间:2015-08-30 10:40:38

标签: leiningen google-closure-compiler clojurescript figwheel

我正在尝试在我的ClojureScript构建中使用figwheel。

它已经与lein cljsbuild auto一起使用,但我必须放:optimisations :whitespace

否则我在浏览器中收到一条消息:

Uncaught ReferenceError: goog is not defined

然而,figwheel需要:optimisations :none才能运行。以下是我的leiningen文件的一部分:

:cljsbuild {
          :builds
          [{:id "dev"
            :source-paths ["src/cljs"]

            :figwheel { :websocket-host "localhost"
                       ;;:on-jsload "example.core/fig-reload"
                       :autoload true
                       :heads-up-display true
                       :load-warninged-code true
                       ;;:url-rewriter "example.core/fig-url-rewrite"
                       }

            :compiler {;; :main
                       :output-to  "resources/public/js/gdb/gdb.js"
                       :output-dir "resources/public/js/gdb/cljsbuild-dev"
                       ;;:asset-path "js/out"

                       :optimizations :none
                       :source-map "resources/public/js/gdb/gdb.js.map"
                       :pretty-print true}}]}

我缺少什么来获取缺少的依赖项?

2 个答案:

答案 0 :(得分:6)

事实证明这是RTFM的经典案例。 答案在ClojureScript quickstart指南中。

具体来说,我必须添加:main部分中指定的:main "example.core" 字段:

offsetCardsCallback

答案 1 :(得分:1)

没有任何事情因为明显错误或缺失而跳出来。然而,lein在某种程度上非常强大,它可以让你根据自己的个人品味/工作流程设置东西,所以如果方法明显不同,很难发现事情。

当我遇到这些类型的问题时,我发现使用许多库或项目提供的标准模板非常有用。我的建议是运行

lein new figwheel ft -- --reagent

这将设置一个名为ft的基本项目(在这种情况下还带有试剂 - 还有另一个选项可以用于om或者你可以将所有这些保留为裸骨默认。请参阅github上的figwheel repo了解更多详情。将提供一个良好的工作lein figwheel设置,hyou可以作为指导。