我一直在尝试使用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
答案 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
相关的警告(不会影响构建本身)
- 由于某些原因,undefined
与myApplication
通过goog
提供externs文件和访问过程解决了警告和运行时问题。
具有已修复问题的版本以及最新的clj和cljs库位于https://github.com/Alexx-G/cljs-electron