2016-03-30 12 views
1

Die project.clj meines Clojurescript-Codes gibt :repl-options {:init-ns my-project.core} an und ich figwheel über start-figwheel!. Im figwheel documentation heißt es, dassWie kann ich figwheel mit einem benutzerdefinierten initialen Namespace starten?

;; you can also just call (ra/start-figwheel!) 
;; and figwheel will do its best to get your config from the 
;; project.clj or a figwheel.edn file` 

Aber wenn figwheel beginnt, ist es mir in den cljs.user Namespace stellt. Wie kann ich Figwheel diese Option auswählen lassen?

Mein figwheel.clj sieht wie folgt aus:

(require '[figwheel-sidecar.repl :as r] 
     '[figwheel-sidecar.repl-api :as ra]) 

(ra/start-figwheel! 
    {:figwheel-options {} 
    :build-ids ["dev"] 
    :all-builds 
    [{:id "dev" 
    :figwheel {:devcards true} 
    :source-paths ["src"] 
    :compiler {:main 'my-project.core 
       :asset-path "js" 
       :output-to "resources/public/js/main.js" 
       :output-dir "resources/public/js" 
       :verbose true}}]}) 

(ra/cljs-repl) 

ich im Grunde bin this question von Google-Gruppen zu fragen.

+0

Wird der Namespace nicht geändert, wenn Sie vom externen REPL-Client aus 'lein repl -c' oder in der gleichen REPL, wo Sie' (ra/start-figwheel) ausführen ''? –

+0

Ich habe mein figwheel.clj hinzugefügt. Ich verbinde mich mit meinem Browser, und dann erscheint die REPL-Eingabeaufforderung (mit 'cljs.user') im Terminal, wo ich das Skript gestartet habe. Ich versuchte 'lein repl: connect 3449', aber das hing einfach. – synthetic

+0

Ich denke '' repl-options' werden nur von leins repl-Task verwendet, nicht von figwheel. Wie benutzt du dein 'figwheel.clj'? Führen Sie es als Skript aus oder laden Sie es in eine REPL-Sitzung? –

Antwort

0

start-figwheel! startet nur die figwheel-Logik. Ihre Feststellung in Bezug auf die:

;; you can also just call (ra/start-figwheel!) 
;; and figwheel will do its best to get your config from the 
;; project.clj or a figwheel.edn file` 

Es findet in der Tat seine Config aber it's only :figwheel submap of project.clj.

:repl-options werden von REPL verwendet, wenn es startet. Es sieht so aus, als ob die Angabe von REPL-Optionen nicht erlaubt und sie nicht von project.clj gelesen werden.

Sie könnten versuchen, mit der Start lein repl wo project.clj der :repl-options Verwendung :init Option zu spielen, den Code, den Sie anstelle eines eigenständigen Skript ausführen möchten, zur Verfügung zu stellen.

+0

Danke Piotrek für das Ausgraben des relevanten Feigenrad-Codes! Um also zusammenfassend zu sagen, anstatt das repl von figwheels repl-API zu starten, verwende ich leins repl-Funktionalität und lade den figwheel-Code hinein (über die Option ": init" von project.clj). – synthetic

+0

Ja, ich denke, es sollte funktionieren. –

+0

Ich habe den Aufruf von 'start-figwheel!' (Und den 'require' -Code) in ein' do' thunk unter ': init' gesetzt und es hat nicht funktioniert, weil es die Quelldateien nicht finden kann. Ich habe auch das Gefühl, dass ': init' nicht dafür gedacht war. Ihre Antwort ist also korrekt, da figwheel keine Möglichkeit hat, ': repl-options' aus project.clj zu übernehmen, aber es scheint nicht viel zu geben. – synthetic

Verwandte Themen