3

我正在编译:

(ns example.hello)
(js/console.log "Hello from ClojureScript!")

使用此配置:

(defproject lein-cljsbuild-example "1.2.3"
  :plugins [[lein-cljsbuild "0.2.9"]]
  :cljsbuild {
    :builds [{
        :source-path "src-cljs"
        :compiler {
          :output-to "war/javascripts/mainz.js"  ; default: main.js in current directory
          ;:optimizations :simple
          :target :nodejs
          ;:pretty-print true
          }}]})

它输出的文件太大而无法放在这里,但给出了错误:

goog.debug.Error = function(opt_msg) {
                 ^
TypeError: Cannot set property 'Error' of undefined
    at Object.<anonymous> (/Users/myuser/Clojure/cljstest/war/javascripts/mainz.js:503:18)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)
4

2 回答 2

2

好吧,在您提供的项目配置中,您的:optimizations :simple子句被注释掉了。这意味着它不会有任何 Google Closure 优化,这意味着输出的 JavaScript不会在一个足够的文件中,而是分成许多文件。base.js这也意味着您必须从 Google Closure 库中明确包含。

看起来这就是这里发生的事情,尽管可能还有其他事情发生......我实际上对 ClojureScript 的 node.js 输出并不熟悉。

于 2012-11-11T01:25:39.377 回答
0

该错误已通过重新安装 leiningen 并进行干净构建来解决。

于 2012-11-16T00:00:13.477 回答