3

clojure に lein を使用し、clojurescript プラグインを使用しようとしています。すべてのreadme.mdインストール手順に従い、project.cljは

  :dependencies [[org.clojure/clojure "1.7.0"]
                [org.clojure/clojurescript "0.0-3126"]]
  ;; lein-cljsbuild plugin to build a CLJS project  
  :plugins [[lein-cljsbuild "1.0.6"]]  
  :hooks [leiningen.cljsbuild]

lein にプラグインを認識させることができないようで、何がグレムリンなのかわかりません。

C:\Functional_Languages\Clojure\clojurescript_master\!work\modern-cljs>lein cljsbuild once
'cljsbuild' is not a task. See 'lein help'.
C:\Functional_Languages\Clojure\clojurescript_master\!work\modern-cljs>lein compile
C:\Functional_Languages\Clojure\clojurescript_master\!work\modern-cljs>lein cljsbuild once
'cljsbuild' is not a task. See 'lein help'.
C:\Functional_Languages\Clojure\clojurescript_master\!work\modern-cljs>lein -v
Leiningen 2.5.1 on Java 1.8.0_51 Java HotSpot(TM) 64-Bit Server VM
C:\Functional_Languages\Clojure\clojurescript_master\!work\modern-cljs>
4

2 に答える 2

5

を使用lein new mies ...してプロジェクト ファイルを取得し、コマンドを実行すると、自動生成された project.clj ファイルを変更する必要があります。これは変更を示す例です:

前:

(defproject simple "0.1.0-SNAPSHOT"
  :description "FIXME: write this!"
  :url "http://example.com/FIXME"
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [org.clojure/clojurescript "1.7.122" :classifier "aot"
                  :exclusion [org.clojure/data.json]]
                 [org.clojure/data.json "0.2.6" :classifier "aot"]]
  :jvm-opts ^:replace ["-Xmx1g" "-server"]
  :plugins [[lein-npm "0.6.1"]]
  :npm {:dependencies [[source-map-support "0.3.2"]]}
  :source-paths ["src" "target/classes"]
  :clean-targets ["out" "release"]
  :target-path "target")

(defproject simple "0.1.0-SNAPSHOT"
  :description "FIXME: write this!"
  :url "http://example.com/FIXME"
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [org.clojure/clojurescript "1.7.122" :classifier "aot"
                  :exclusion [org.clojure/data.json]]
                 [org.clojure/data.json "0.2.6" :classifier "aot"]]

  :node-dependencies [[source-map-support "0.2.8"]]

  :jvm-opts ^:replace ["-Xmx1g" "-server"]

  :plugins [[lein-npm "0.6.1"] 
            [lein-cljsbuild "1.0.4"]]

  :npm {:dependencies [[source-map-support "0.3.2"]]}
  :source-paths ["src" "target/classes"]
  :clean-targets ["out" "release"]
  :target-path "target"

  :cljsbuild {
      :builds [{:id "simple"
                :source-paths ["src"]
                :compiler {
                    :main simple.core
                    :output-to "out/simple.js"
                    :output-dir "out"
                    :optimizations :none
                    :target :nodejs
                    :cache-analysis true
                    :source-map true}}]})

ご覧のとおり、ビルド情報を含む lein-cljsbuild プラグインを追加する必要があります。詳細については、http://www.mase.io/code/clojure/node/2015/01/24/getting-started-with-clojurecript-and-node/を参照してください。

変更したくない場合は、実行して./scripts/buildください。

于 2015-09-06T20:56:58.600 に答える
3

問題は、あなたの project.clj ファイルに、clojurescript ソース ファイルをコンパイルするために必要なさまざまなパラメーターを定義する :cljsbuild スタンザ/キーがないことだと思います。

詳細については、Modern Clojurescript チュートリアルを参照するか、私の clojurescriptファイル アップロードの例を参照して、:cljsbuild ターゲットを定義する方法を理解してください。

于 2015-07-21T01:44:02.250 に答える