代码之家  ›  专栏  ›  技术社区  ›  Akisame

ClojureScript-外部文件中未定义名称goog

  •  0
  • Akisame  · 技术社区  · 6 年前

    我一直在用ClojureScript测试Electron template 我决定升级Clojure和ClojureScript(从CLJS 1.10.x获得性能更新),但是,我收到了一些警告,electron应用程序在升级后无法运行。

    我发现以下错误:

    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

    2 回复  |  直到 6 年前
        1
  •  0
  •   Alan Thompson    6 年前

    我建议您首先升级所有库。我目前正准备

      :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"]]
    

    在我当前的项目上。

        2
  •  0
  •   Akisame    6 年前

    显然,有两个问题: -该警告与 goog (这不会影响构建本身) -出于某些原因 js/process 不同于 (js/require "process")

    通过提供外部文件和访问流程 js/require 解决了警告和运行时问题。

    这里有修复问题的版本和最新的clj和cljs库 https://github.com/Alexx-G/cljs-electron