我正在使用luminus web框架运行服务器,该框架使用了ring/compojure,我希望能够使用clojure repl连接到我的代码。据我所知,有一个nrepl服务器代表网络repl,您可以通过以下方式连接到它:‘protocol :connect @host:port(或者一些不同的协议,我尝试过一些东西)。
当您自动生成一个具有‘luminus project-name’的luminus项目时,将创建来自repl.clj的以下代码。
(ns sophia-site.repl
(:require [cemerick.piggieback :as pig]
[weasel.repl.websocket])
(:use sophia-site.handler
ring.server.standalone
[ring.middleware file-info file]))
(defn browser-repl []
(pig/cljs-repl :repl-env
(weasel.repl.websocket/repl-env :ip "localhost" :port 9001)))
(defonce server (atom nil))
(defn get-handler []
;; #'app expands to (var app) so that when we reload our code,
;; the server is forced to re-resolve the symbol in the var
;; rather than having its own copy. When the root binding
;; changes, the server picks it up without having to restart.
(-> #'app
; Makes static assets in $PROJECT_DIR/resources/public/ available.
(wrap-file "resources")
; Content-Type, Content-Length, and Last Modified headers for files in body
(wrap-file-info)))
(defn start-server
"used for starting the server in development mode from REPL"
[& [port]]
(let [port (if port (Integer/parseInt port) 8080)]
(reset! server
(serve (get-handler)
{:port port
:init init
:auto-reload? true
:destroy destroy
:join? false}))
(println (str "You can view the site at http://some-ip:" port))))
(defn stop-server []
(.stop @server)
(reset! server nil))我和lein repl :connect ...的关系一直不成功
谢谢你的帮助
发布于 2015-01-16 18:24:30
在您的项目根中,您应该运行lein repl,一旦连接,您可以在repl提示符下输入(start-server)。
您的服务器和浏览器选项卡将被启动,您调用(start-server的repl提示符可以用于与正在运行的应用程序进行交互。
为了防止浏览器选项卡启动,需要将:open-browser? false添加到传递给serve的repl.clj选项图中:
(serve (get-handler)
{:port port
:init init
:auto-reload? true
:destroy destroy
:open-browser? false
:join? false})https://stackoverflow.com/questions/27989997
复制相似问题