Clojurescript重复外部输入错误

时间:2016-09-08 18:14:10

标签: javascript clojurescript google-closure-compiler screeps

我正在研究我的第一个“真正的”clojurescript项目,并遇到了一个问题。

目标是将生成的javascript上传到https://screeps.com,以便玩该游戏。

我正在screeps-beans commit 5930152使用某人的外部/一般图书馆的分支。这个fork的脚本/手表可以很好地构建它,并且据我所知可以生成适当的javascript。

我创建了my-screeps commit 181a9da5,它使用lein checkout来吸引screeps-beans。它目前只是尝试打印到控制台(计划将最终包含我的游戏AI的所有逻辑,这些逻辑不够通用于进入screeps-beans)。

我使用https://github.com/swannodette/mies生成脚本/我遇到了重复的extern输入问题。

如果我使用脚本/构建它似乎工作正常,但据我所知,https://screeps.com不能很好地工作。

如果我使用脚本/版本,我会得到:

➜  my-screeps git:(clojurescript) ✗ scripts/release 
Building ...
Analyzing jar:file:/home/myusername/.m2/repository/org/clojure/clojurescript/1.9.229/clojurescript-1.9.229.jar!/cljs/core.cljs
Analyzing src/my_screeps/core.cljs
Applying optimizations :advanced to 14 sources
Sep 08, 2016 1:08:18 PM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: ERROR - Duplicate extern input: /home/myusername/git_repos/screeps-beans/resources/screeps/externs/screeps.ext.js

Sep 08, 2016 1:08:18 PM com.google.javascript.jscomp.LoggerErrorManager printSummary
WARNING: 1 error(s), 0 warning(s)
ERROR: JSC_DUPLICATE_EXTERN_INPUT. Duplicate extern input: /home/myusername/git_repos/screeps-beans/resources/screeps/externs/screeps.ext.js at (unknown source) line (unknown line) : (unknown column)
... done. Elapsed 3.692992138 seconds

发布脚本使用

调用clojurescript编译器
(require '[cljs.build.api :as b])

(println "Building ...")

(let [start (System/nanoTime)]
  (b/build "src"
           {:output-to "release/main.js"
            :output-dir "release"
            :optimizations :advanced
            :verbose true})
  (println "... done. Elapsed" (/ (- (System/nanoTime) start) 1e9) "seconds"))

我想我在screeps-beans或my-screeps的某个地方有一个错字或其他类似的误解,但我不知所措。

编辑:

我发现我可以通过将extern放入my-screeps而不是screeps-beans来实现这一点。您可以通过查看screeps-beans commit 6b80c77my-screeps commit 636ab847来了解这种情况。基本上我将资源目录和src / deps.cljs移动到my-screeps。

我认为这是一种解决方法而非实际答案。

0 个答案:

没有答案