请分享您的想法在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上工作时(专门使用tools.deps...),我只是启动了一个powershell版本和一个nrepl别名,然后用cider从启动后通过cider-connect连接到它。效果还不错。

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

感谢您指出了 deps.clj。它完全符合我的需求。
0

clj 命令是用于 Clojure 命令行的,这是一个不同于 lein 的工具,因此需要单独安装。

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

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

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

"Clojure" 本身其实只是您在项目中作为依赖项使用的库 -- 您实际上并不需要“安装”它。由于 Clojure 1.9 以来,没有单个 JAR 文件可以下载和使用 -- 您必须将 Clojure 作为依赖项使用 -- 因此您需要使用一些工具来帮助您处理依赖项管理:Leiningen 或 Clojure 命令行(或 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包,并且它们可以使用同一个(但默认可能使用不同的版本)。您已走在正确的道路上,只需继续前进即可。

编辑
是的,这样可以工作,但对我来说有点麻烦,因为工具是在Powershell中而不是老式的Windows命令处理器中host的。我已经习惯了在 emacs 中host这种类型的shell,所以只为这种用例设置别的东西会很麻烦。真遗憾没有更接近windows下的 "lein.bat" 的东西,这样像我这样的用户就可以更准确地比较 Leiningen。

无论如何,我相信我可以用clojurescript和lein进行一些操作;我只是希望作为一个教学练习,更好地理解这个替代工具链 -- 互相重叠和冲突的工具链是一团混乱。
(编辑 -- 不小心双重发布前面的回复)
就其价值而言,我认为目前Windows上最好的开发环境是使用WSL2,并在其中运行所有的Clojure/Script相关内容——因为所有这些都在Linux上“简单有效”。我就是这样在Windows上使用一个120,000行的Clojure代码库的,使用Docker运行Elastic Search、Redis和Percona,一切都按教程/书籍上的操作顺利进行。Windows在Clojure世界一直是二等公民,您会发现相当多的教程和项目要么根本在Windows上无法工作,要么需要解决一些问题。
是的,我也在传统的Clojure中遇到了这些问题。

我一直对WSL2很感兴趣,但后来我在一些关于它在使用VPN时不兼容的文章中看到了一些负面评论,而这正是我现在经常在家工作的场景。
我用VPN访问我们的QA/生产服务器,并且在使用WSL2时没有遇到任何奇怪的问题——我可以通过VPN从WSL2顺利访问这些服务器。你有关于“负面评论”的文章链接吗?
我的第一个线索是pauljohn32在这里页面底部的评论

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

然后google“wsl vpn conflict”,出现了很多相关的内容,包括WSL github页面上的以下开放式问题(第一个搜索结果)

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

此后我没有进一步挖掘以了解具体细节。或许您可以基于您的个人经验和您所见的内容澄清这个问题。
by
我刚才将Windows VPN连接到了我们的服务器集群(使用内置VPN,但服务器端是Cisco的设置),我仍然可以从WSL2向任何服务器进行curl操作 -- 不论是在DMZ内部还是外部 -- 并且我可以在WSL2中启动google-chrome并与我想要的任何网站进行交互,同时VPN保持连接。我没有/etc/wsl.conf,所以我使用的/etc/resolv.conf文件是自动生成的。

目前我正在Windows 11上的最新WSL2版本(我已经使用Insider版本的所有东西超过七年了)。我想WSL2推出后不久,有过一些网络问题,但我已经很久没有遇到任何问题了。
by
支持似乎因特定的VPN而不同。
...