ClojureScript - 名称goog未在外部定义

时间:2018-04-08 14:40:01

标签: clojure electron clojurescript google-closure-compiler

我一直在尝试使用ClojureScript的Electron template,我决定升级Clojure和ClojureScript(从CLJS 1.10.x获得性能更新),但是,我有一些警告和电子升级后应用程序无效。

我收到这些错误:

WARNING: resources/public/js/ui-release-out/inferred_externs.js:19: WARNING - name goog is not defined in the externs.
goog.isArrayLike;
^^^^

Apr 08, 2018 5:14:05 PM com.google.javascript.jscomp.LoggerErrorManager printSummary
WARNING: 0 error(s), 1 warning(s)
Successfully compiled ["resources/public/js/ui-core.js"] in 12.076 seconds.
Compiling ClojureScript...
Compiling ["resources/main.js"] from ["electron_src"]...
Apr 08, 2018 5:14:17 PM com.google.javascript.jscomp.LoggerErrorManager println
WARNING: resources/public/js/electron-release/inferred_externs.js:5: WARNING - name goog is not defined in the externs.
goog.isArrayLike;
^^^^

Apr 08, 2018 5:14:17 PM com.google.javascript.jscomp.LoggerErrorManager printSummary
WARNING: 0 error(s), 1 warning(s)
Successfully compiled ["resources/main.js"] in 8.182 seconds.

如果我将ClojureScript依赖项降级为1.9.542,一切正常。 我也使用1.9.946收到此错误。

但是,在开发构建中,一切都运行良好。

似乎它可能与此票证https://dev.clojure.org/jira/browse/CLJS-2392

有关

您可以重现克隆此回购https://github.com/Alexx-G/cljs-electron并运行lein do clean, cljsbuild once frontend-release, cljsbuild once electron-release

2 个答案:

答案 0 :(得分:0)

我建议您做的第一件事就是升级所有库。我目前正在设置

  :dependencies [[org.clojure/clojure "1.9.0"]
                 [org.clojure/clojurescript "1.10.238"]
                 [org.clojure/core.async "0.4.474"]]

  :plugins [[lein-cljsbuild "1.1.7" :exclusions [[org.clojure/clojure]]]
            [lein-doo "0.1.10"]
            [lein-figwheel "0.5.15"]]

我当前的项目。

答案 1 :(得分:0)

显然,有两个问题: - 与myApplication相关的警告(不会影响构建本身) - 由于某些原因,undefinedmyApplication

不同

通过goog提供externs文件和访问过程解决了警告和运行时问题。

具有已修复问题的版本以及最新的clj和cljs库位于https://github.com/Alexx-G/cljs-electron