请在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上工作时,在进行Datomic培训的日子(仅限tools.deps...),我只是启动了一个powershell版本和nrepl别名,并通过cider-connect在启动后连接到它。运行正常。

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

by
感谢你的指向deps.clj。它完美满足了我的需求。
0
by

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

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

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

这是两种不同的Clojure工作方式。

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

by
是的,我理解为上述内容。据我所知,“clojure cli”是我试图使其工作的clj命令行工具。我已经让clojure和leiningen运行正常,但我使用的clojurescript教程希望使用clojure cli工具(clj)。

我看到的获取Windows的cli工具的唯一说明包括安装clojure jar,在我看来这是多余的操作,因为我已经有Leiningen工作正常了。

我在哪里犯了错误?
by
您需要按照以下步骤安装 Clojure CLI(“clj”命令)。这将使用 Clojure 并安装 JAR,但不必担心。Clojure CLI 和 Leiningen 都使用相同的 Maven 本地仓库来存储 JAR 文件,并且它们可以使用同一个仓库(尽管默认情况下它们可能使用不同的版本)。您正在正确的道路上,只需要继续前进。
by
edited by
是的,它确实成功了,但这对我来说有点麻烦,因为这些工具体现在 PowerShell 中,而不是传统的 Windows 命令处理器。我已经习惯了在 emacs 中托管这种 shell,所以只为这种用途设置其他东西会很痛苦。遗憾的是,没有更接近于 Windows 下的 "lein.bat" 的东西,这样像我这样的人就可以与 Leiningen 进行更接近苹果对苹果的比较。

不管怎样,我相信我可以用 clojurescript 和 lein 做出一些事情;我只是在希望能够更好地了解这个工具链,作为一次教育实践--重叠和冲突的工具链有点混乱。
by
(编辑 - 错误地发布了之前的回复)
by
在我看来,现在Windows上最佳的开发配置是使用WSL2并在这里运行所有Clojure/Script相关的东西——因为所有这些在Linux上都会“轻松搞定”,因为几乎所有的Clojure/Script项目都针对macOS/Linux。我就是这样在Windows上使用120k行Clojure代码库的,使用了Docker进行Elastic Search、Redis和Percona,所有这些都按照所有教程和书籍中的说明正常工作。Windows在Clojure世界中一直是一个二等公民,你会发现相当多的教程和项目在Windows上根本无法运行,或者需要一些解决办法才能运行。
是的,我也遇到了标准Clojure的这些问题。

我曾经考虑过使用WSL2,但后来读到一些关于它在使用VPN时不太配合的负面评论,而我目前在家工作的情况通常是使用VPN。
我用VPN访问我们的QA/生产服务器,并且在WSL2中从未遇到过任何奇怪的问题——我可以通过VPN在WSL2中正常访问这些服务器。你有关于这些“糟糕的事情”的文章链接吗?
我第一次注意到这个问题是在这里pauljohn32在页面底部的评论。

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

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

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

之后我没有进一步挖掘细节。也许你可以根据你的个人经验和看到的内容来澄清这个问题。
我刚刚连接了Windows VPN到我们的服务器集群(使用的是内置VPN,但服务器端是思科设备),我仍然可以从WSL2中curl到任何服务器——无论是内部还是外部防火墙区域,并且我可以在WSL2中启动Google Chrome,与任何我想要的网站进行交互,同时VPN已连接。我没有/etc/wsl.conf,所以为我自动生成了/etc/resolv.conf文件。

我现在使用的是Windows 11上的最新WSL2版本(我已经使用各种内测版本已经超过七年了)。我认为在WSL2推出后不久,有过一些与网络相关的问题,但我已经很久没有遇到过任何问题。
by
对特定VPN的支持似乎时好时坏
...