2024 Clojure状态调查!中分享您的观点。

欢迎!请查看关于页面以了解有关如何操作的更多信息。

0
Clojure

我在Windows上运行(非WSL),并且已经根据这里的说明安装了一个可用的clojure / lein

https://dev.to/adasomg/10-life-changing-minutes-with-clojure-windows-3ofl

现在我想根据https://www.learn-clojurescript.com中的教程开始使用clojurescript。它想将clj作为构建clojurescript的工具,并指向主站点的安装说明,该说明最终指向这里

https://github.com/clojure/tools.deps.alpha/wiki/clj-on-Windows

但该方法假设您还没有安装clojure,而我已经有了。是否有独立的Windows clj工具安装方法?

2 答案

+1

被选为最佳答案
 
最佳答案

您应该能够通过cider的powershell工具集来使其工作

https://docs.cider.mx/cider/basics/up_and_running.html#clojure-cli-options

我在这里取得的成功非常有限。了过去在工作中针对Windows进行d同桌matraining(只使用tools.deps...)时,我只是启动了一个带有powershell版本和nrepl别名的repl,并在启动后通过cider-connect连接到它。工作正常。

理论上有一些包装二进制文件,例如https://github.com/borkdude/deps.clj,可以作为备用命令提供。希望powershell版本现在可以正常工作(至少与cider一起使用)。

感谢您指出deps.clj,它的功能与我的需求完全吻合。
0

clj命令是Clojure CLI的命令,它是一个与lein不同的工具,因此需要单独安装。

Leiningen项目使用project.clj文件来描述依赖项、插件等。

Clojure CLI项目使用deps.edn文件来描述依赖项等。

它们是两种处理Clojure的不同的方式。

"Clojure"本身实际上只是作为项目依赖项使用的库--你实际上并不需要“安装”它。从Clojure 1.9开始,没有单一的JAR文件可以下载和使用--你必须将Clojure作为依赖项使用--因此你需要使用一些处理依赖项管理的工具:无论是Leiningen还是Clojure CLI(或者Boot,但你不询问这个)。

是的,我认为我明白了。按照我的理解,"clojure cli"就是我尝试使其工作的clj命令行工具。我已经让clojure和leiningen工作,但我所使用的clojurescript教程希望使用clojure cli工具(clj)。

我唯一看到的用于Windows获取cli工具的说明是安装clojure jar,但据我所知,这在我的情况下是多余的,因为我已经有了leiningen在工作。

我这里遗漏了什么?
您需要按照以下步骤安装Clojure CLI(即“clj”命令)。这将使用Clojure并安装jar包,但请不要担心。Clojure CLI和Leiningen使用相同的Maven本地仓库来存储jar包,它们可以使用同一个仓库(但默认可能使用不同的版本)。您已经走在正确的道路上,请继续前进。

编辑
是的,这样是可行的,但对我来说这有点棘手,因为这些工具是在Windows世纪个人助手(powershell)中而不是传统的Windows命令处理程序中托管的。我已经习惯了在emacs中托管这种shell样式,所以只为这个用例设置其他的东西会是个麻烦事儿。真希望没有比Windows下的"lein.bat"更相似的东西,这样像我这样的人就可以与Leiningen进行更准确的“苹果比苹果”的比较。

不过,我肯定可以用Clojurescript和Leiningen做些什么;我只是希望作为一次教育练习更好地理解这个替代工具链——重叠和冲突的工具链有点混乱。
(编辑 – 意外地重复发布之前的回复)
就个人看法而言,我认为目前在Windows上最好的开发环境是使用WSL2,并在其中运行所有Clojure/Script相关的内容——因为Linux上的所有操作都会“轻松启动”。几乎所有Clojure/Script项目都是以macOS/Linux为目标平台的,因此这样的配置非常适合我。我就是这样在Windows上处理一个包含12万行Clojure代码库的项目,并且在Docker的帮助下运行了Elastic Search、Redis和Percona,一切操作都遵循了所有的教程和书籍。Windows在Clojure领域一直处于较低的地位,你会发现很多教程和项目要么在Windows上完全不工作,要么需要使用一些替代方案才能实现。
是的,我也遇到了标准Clojure的这些问题。

我一直在考虑使用WSL2,但是我读到一些关于它在使用VPN时的表现不佳的负面信息,而这正是我现在在家办公的常态。
我使用VPN访问我们的QA/生产服务器,并在WSL2上没有任何奇怪的问题——我可以正常通过VPN访问这些服务器。你有没有关于“这些负面消息”的链接?
我的首次提示是在页面底部附近pauljohn32的评论

https://adamtheautomator.com/windows-subsystem-for-linux/

然后搜索“wsl vpn 冲突”,出现了很多结果,包括以下wsl github页面上的一个开放问题(第一个搜索结果)

https://github.com/microsoft/WSL/issues/5068

在那之后我没有进一步挖掘事件的细节。或许你可以根据你的个人经验和所看到的情况来澄清这个问题。
我刚刚将Windows VPN连接到我们的服务器集群(使用内建的VPN,但在服务器端是Cisco的设备),我仍然可以从WSL2向任何服务器进行curl调用——无论是DMZ内部还是外部——并且我可以在WSL2上启动google-chrome,与任何我想要的网站交互,同时VPN连接处于激活状态。我没有/etc/wsl.conf文件,因此/etc/resolv.conf文件由系统自动生成。

目前我正在使用Windows 11上的最新版WSL2(我已经用了超过七年的Insider版本)。我认为在WSL2推出不久后,确实有一段时间遇到了与网络相关的问题,但已经很久没有遇到任何问题了。
支持似乎取决于具体的VPN类型。
...