ClojureScript - 名称 goog 未在外部定义
ClojureScript - name goog is not defined in the externs
我一直在用这个 template 尝试使用 ClojureScript 的 Electron,我决定升级 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
你可以复制它克隆这个 repo https://github.com/Alexx-G/cljs-electron 并且是 运行 lein do clean, cljsbuild once frontend-release, cljsbuild once electron-release
我建议您做的第一件事就是升级所有库。我目前设置
: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"]]
关于我当前的项目。
显然,有两个问题:
- 与 goog
相关的警告(不影响构建本身)
- 由于某些原因 js/process
不同于 (js/require "process")
通过 js/require
提供外部文件和访问进程解决了警告和运行时问题。
修复了问题的版本和最新的 clj 和 cljs 库在这里 https://github.com/Alexx-G/cljs-electron
我一直在用这个 template 尝试使用 ClojureScript 的 Electron,我决定升级 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
你可以复制它克隆这个 repo https://github.com/Alexx-G/cljs-electron 并且是 运行 lein do clean, cljsbuild once frontend-release, cljsbuild once electron-release
我建议您做的第一件事就是升级所有库。我目前设置
: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"]]
关于我当前的项目。
显然,有两个问题:
- 与 goog
相关的警告(不影响构建本身)
- 由于某些原因 js/process
不同于 (js/require "process")
通过 js/require
提供外部文件和访问进程解决了警告和运行时问题。
修复了问题的版本和最新的 clj 和 cljs 库在这里 https://github.com/Alexx-G/cljs-electron