请在 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 上工作的时候,在 day of datomic 培训中(主要是 tools.deps...),我只是启动了一个带 powershell 版本的 repl 和 nrepl 别名,然后在启动后从 cider 通过 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 包,它们可以使用同一个(但默认可能使用不同的版本)。您正在正确的道路上,请继续前进。
by
编辑 by
是的,这确实可行,但对于我来说有一点不便,因为这些工具是在 PowerShell 而不是老旧的 Windows 命令处理器中托管的。我习惯了在 emacs 中托管这种样式的 shell,因此仅为此用途配置其他环境将很麻烦。很遗憾没有更接近 Windows 下“lein.bat”相似的东西,这样用户像我一样可以进行更“苹果与苹果”式的 Leiningen 比较。

不过,我相信我可以用 ClojureScript 和 Leiningen 让它工作;我只是希望通过教育练习更好地了解这个替代工具链,重叠和冲突的工具链有点混乱。
by
(编辑 -- 不小心重复发布之前的回复)
by
就我所知,目前 Windows 上最好的开发环境是使用 WSL2 并在那里运行所有 Clojure/Script 东西,因为所有这些都在 Linux 上“Just. Work.”,因为几乎所有 Clojure/Script 项目都针对 macOS/Linux。我用这种方式在 Windows 上处理 120k 行的 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。
...