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

ClojureScript cljsbuild doesn't load dependencies without optimisations

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

它已经适用于 lein cljsbuild auto,但我必须输入 :optimisations :whitespace

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

Uncaught ReferenceError: goog is not defined

然而,图轮需要 :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}}]}

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

没有明显错误或遗漏的地方。然而,lein 在某种程度上非常强大,它可以让你设置适合你个人的东西 taste/workflow,所以如果方法明显不同,就很难发现东西。

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

lein new figwheel ft -- --reagent

这将设置一个名为 ft 的基本项目(在这种情况下也使用试剂 - om 有另一个选项,或者您可以将所有这些都保留下来以获得简单的默认设置。请参阅 [=18= 上的 figwheel repo ] 了解更多详情。这将提供一个良好的工作 lein figwheel 设置,您可以将其用作指南。

原来这是RTFM的经典案例。 答案在 ClojureScript quickstart 指南中。

具体来说,我必须添加一个 :main 字段,如 Less Boilerplate 部分所述:

:main "example.core"