2017-10-22 6 views
2

Ich folge der Clojurescript QuickStart auf Fenster 7 und stecken mit dem letzten Punkt - mit Leiningen laufen.
einfacher Befehl:Clojurescript Schnellstart Problem mit Leiningen

lein run -m clojure.main repl.clj 

Fehler kehren mit enomourous Stacktrace weicht beginnt so:

clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate cljs/repl__init.class or cljs/repl.clj on classpath: , compiling:(X:\n\code\hello_world\repl.clj:1:1) 

Ich suche habe das Web und fand am nächsten case, aber ich habe gerade ganzen Code von der Website kopiert Ich glaube, es gibt keinen Tippfehler.
Was fehlt mir?

repl.clj:

(require 'cljs.repl) 
(require 'cljs.build.api) 
(require 'cljs.repl.browser) 
(cljs.build.api/build "src" 
    {:main 'hello-world.core 
    :output-to "out/main.js" 
    :browser-repl true 
    :verbose true}) 
(cljs.repl/repl (cljs.repl.browser/repl-env) 
    :watch "src" 
    :output-dir "out") 


Update: Ich habe mit lein erstellt Projekt 'hw', kopiert repl.clj in das Verzeichnis Projektstamm sowie cljs.jar. Außerdem habe ich cljs.jar in das src-Verzeichnis kopiert (es wurde in der Kurzanleitung erwähnt, dass src automatisch in den Klassenpfad wechselt), aber das Ergebnis ist das gleiche.
project.clj:

(defproject hw "0.1.0-SNAPSHOT" 
     :description "FIXME: write description" 
     :url "http://example.com/FIXME" 
     :license {:name "Eclipse Public License" 
       :url "http://www.eclipse.org/legal/epl-v10.html"} 
     :dependencies [[org.clojure/clojure "1.6.0"]] 
     :main ^:skip-aot hw.core 
     :target-path "target/%s" 
     :profiles {:uberjar {:aot :all}}) 

Update 2
Auch mit dem Hinzufügen von clojurescript als Abhängigkeit kein Glück auch:

(defproject hw "0.1.0-SNAPSHOT" 
    :description "FIXME: write description" 
    :url "http://example.com/FIXME" 
    :license {:name "Eclipse Public License" 
      :url "http://www.eclipse.org/legal/epl-v10.html"} 
    :dependencies [[org.clojure/clojure "1.6.0"] 
       [org.clojure/clojurescript "1.7.170"] 
       ] 
    :main ^:skip-aot hw.core 
    :target-path "target/%s" 
    :profiles {:uberjar {:aot :all}}) 

Putting cljs.jar zu lib direcroty auch nicht geholfen hat.
https://youtu.be/ciCQ_Nkis4I

+0

Könnten Sie bitte Ihr 'project.clj' hinzufügen?Es sieht so aus, dass ClojureScript jar möglicherweise nicht zum Klassenpfad hinzugefügt wird. –

+0

Im Leininger Abschnitt wird erwähnt, dass "Klassenpfad" ausgeführt wird. Wenn Sie das ausführen, werden Sie (vermute ich) sehen, dass cljs.jar nicht da ist. Die übliche Sache mit Leiningen zu tun ist, einfach einen Verweis auf ClojureScript in Ihre Abhängigkeiten zu setzen, ähnlich dem, den Sie dort für Clojure haben. –

+0

Vielen Dank für den Rat, aber unglücklicherweise ist src dir in lein classpath https://youtu.be/S7aQAmoqNpM. Ich werde es mit Abhängigkeiten versuchen. –

Antwort

0

Für Leiningen cljs.jar Sie ein lib Verzeichnis aus Ihrem Projekt Stammverzeichnis erstellen müssen abholen und cljs.jar dort setzen. Das Tutorial tut erwähne dies unter dem Nebenabschnitt, der kurz vor dem Leiningen Abschnitt kommt:

Wenn Sie ein paar Abhängigkeiten haben, eine Konvention ist es, sie in einen Ordner lib

Ich rief zu setzen Ich schätze, Sie sollten folgern, dass Leiningen dieser Konvention folgt.

Meine Beweise für diese Arbeiten sind hier: leiningen - how to add dependencies for local jars?

jedoch Ankündigung gibt es einen Kommentar unten:

Ab Leiningen v2, die lib/Verzeichnis Funktionalität wird entfernt.

So ist das Quickstart-Tutorial veraltet.

Ich würde empfehlen, direkt zu figwheel für eine Einführung in Clojurescript, trotz, was dort gesagt wird.

+0

Ich habe das nicht getestet, aber ich verließ mich auf die Antwort hier: https://StackOverflow.com/Questions/2404426/Leiningen-How-to-Add-dependencies-for-local-jars. Um ehrlich zu sein, würde ich empfehlen, direkt zu figwheel zu gehen, um eine Einführung in Clojurescript zu erhalten: https://github.com/bhauman/lein-figwheel/wiki/Quick-Start (trotz allem, was dort gesagt wird). –