2012-10-14 8 views
9

In meinem clojurescript Code habe ich folgendes:Erhalten Sie das Clojurescript repl/connect, um nicht in der Produktion zu kompilieren?

(defn onload [] (repl/connect "http://localhost:9000/repl")) 

(set! (.-onload js/window) onload) 

Die Clojurescript repl ist in der Entwicklung sehr nützlich, aber ich bin zögerlich es während der Produktion in den Code zu verlassen. Was ist der sauberste Weg, um den obigen Code während der Entwicklung zu haben (einfache Kompilierung), aber während der Produktion nicht vorhanden (fortgeschrittene Kompilierung)?

Antwort

3

Leider gibt es derzeit keine gut definierten Möglichkeiten, um bedingte Kompilierungen in ClojureScript durchzuführen.

Sie können Konfigurationsvariablen hinzufügen, um zu steuern, ob eine REPL auf verschiedene Arten gestartet werden soll. Eine einfache und schnelle Methode wäre jedoch, den Hostnamen der aktuellen Seite abzurufen und nur repl/connnect aufzurufen, wenn es "localhost" oder ist welche anderen Domänen auch immer Sie für die Entwicklungsarbeit verwenden.

+0

Nachdenken, das würde auch bedeuten, dass der gesamte Code für repl/connect auch in meinen Produktionscode übersetzt würde. Ich habe ehrlich gesagt keine Ahnung, wie groß das kompilierte Segment ist. –

1

Ich denke, eine Kombination aus lein2-Profilen und Cljsbuild src-Pfade Munging kann den Trick tun. Erstellen Sie z. B. einen Namespace, der einfach Ihr repl lädt, und schließen Sie ihn mit einem Profil aus, das für die endgültige Kompilierung ausgeführt wird (möglicherweise müssen Sie einen Dummy-Namespace in einem anderen src-Pfadverzeichnis erstellen).

Verwandte Themen