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は1つの十分なファイルに含まれず、多くのファイルに分割されます。base.jsこれは、GoogleClosureライブラリから明示的に含める必要があることも意味します。

他のことが起こっているかもしれませんが、それがここで起こっているように見えます...私は実際にはClojureScriptのnode.js出力にそれほど精通していません。

于 2012-11-11T01:25:39.377 に答える
0

このエラーは、leiningenを再インストールし、クリーンビルドを実行することで解決されました。

于 2012-11-16T00:00:13.477 に答える