Clojure Light Table客户端-服务器方法之谜

Clojure Light Table客户端-服务器方法之谜,clojure,leiningen,lighttable,nrepl,pedestal,Clojure,Leiningen,Lighttable,Nrepl,Pedestal,我如何设置它,以便在Mac上使用Light Table,连接到Ubuntu托管的nREPL,并创建一个新程序/project.clj?有谁能帮助我理解我的方法应该是什么,我错在哪里 我在VirtualBox中有一个Ubuntu服务器,还有Leiningen、基座和一个显示在浏览器中的基座“helloworld”示例程序。我只是无法连接到运行helloworld程序的同一个REPL。我没有对服务器端对象的客户端访问或控制 我想从我的Mac主机LT进行客户机-服务器Clojure开发,创建可以在RE

我如何设置它,以便在Mac上使用Light Table,连接到Ubuntu托管的nREPL,并创建一个新程序/project.clj?有谁能帮助我理解我的方法应该是什么,我错在哪里

我在VirtualBox中有一个Ubuntu服务器,还有Leiningen、基座和一个显示在浏览器中的基座“helloworld”示例程序。我只是无法连接到运行helloworld程序的同一个REPL。我没有对服务器端对象的客户端访问或控制

我想从我的Mac主机LT进行客户机-服务器Clojure开发,创建可以在REPL中查看的服务器端程序


我不认为LT在这方面是直观的,我只读过的建议建议LT将连接到现有的项目/REPL。我想从客户端创建新对象,假设您主要谈论的是服务器端的事情(对ClojureScript还不太了解),下面是如何设置新项目并针对远程repl交互编写代码

  • 在虚拟机中输入新项目名称
  • 按需要的方式设置project.clj。您必须包含依赖项
  • 在VM中启动REPL并记下端口号
  • 将代码提交到版本控制(git)
  • 在Mac OSX的LightTable中签出相同的代码库进行编辑
  • 连接到远程REPL
  • 打开core.clj或创建一个新的名称空间文件并开始黑客攻击
  • 评估代码片段或整个文件
  • 我预见到了一些潜在的问题。首先,无论何时添加依赖项,都需要将更改提交到版本控制,同步VM工作副本,重新启动REPL,并将LightTable重新连接到远程REPL


    其次,当项目超出几个名称空间时,您可能会遇到问题。我相信,如果您的名称空间需要项目中的另一个名称空间,那么远程REPL进程(我认为)将尝试从其本地类路径加载它。如果依赖项不存在或已更改,我认为LightTable不够智能,无法通过网络发送所需的名称空间。试试看,让我们知道实际行为是什么。

    谢谢你回答我的下一个问题!我的实际解决方案是使用以下命令启动nrepl:lein repl:headless:host 0.0.0.0然后我可以使用hostname:nrepl端口进行连接您已经回答了如何访问文件的问题,因为它无法访问我的服务器-github。我理解你预见的问题。我将在这里分享我的经验。您是否考虑过Travis CI,一种与github协同工作的持续集成工具。它似乎可以管理连接,这样我就可以推动您的解决方案,而无需所有的断开/连接。