请分享您的看法,参加 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
by
selected by
 
最佳答案

您应该能够使用 cider 的 PowerShell 工具来使其工作

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

我在过去在 Windows 上有限地成功过。在上次为 datomic 培训(完全使用 tools.deps...)工作时,我只是启动了一个 PowerShell 版本的 repl 和 nrepl 别名,并在启动后通过 cider-connect 从 cider 中连接到它。效果还可以。

有一些包装的二进制文件,例如 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,但你没有询问这个),要么是 Boot。

是的,我认为我理解了这一点。根据 IUC,"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命令处理程序中。我已经习惯于在emacs中托管这种类型的shell,所以只为这种情况设置其他东西会非常麻烦。遗憾的是,没有更接近Windows下“lein.bat”的东西,这样像我们这样的用户就可以对Leiningen做更“苹果对苹果”的比较。

无论如何,我相信我可以使用clojurescript和lein使其工作;我只希望作为一个教育练习来更好地理解这个替代工具链——重叠和冲突的工具链有点混乱。
(已编辑——不小心重复发布了之前的回复)
就我的观点而言,我认为目前Windows上最好的开发环境是使用WSL2并在那里运行所有的Clojure/Script项目,因为Linux是几乎所有Clojure/Script项目的目标平台,所以一切都会“Just. Work.”。我在Windows上使用这种方式管理了一个120k行代码的Clojure代码库,结合了Docker的Elastic Search、Redis和Percona等,所有教程和书籍中的内容都按预期运行。Windows在Clojure的世界里一直是个二等公民,你会发现很多教程和项目要么在Windows上完全不工作,要么需要一些变通。
是的,我已经在使用标准Clojure时也遇到了这些问题。

我一直在尝试使用WSL2,但我后来听说了一些关于它的负面评论,说它在与VPN一起使用时表现不佳,这是我现在常见的工作场景。
我使用VPN访问我们的质量保证/生产服务器,并且在使用WSL2时没有遇到任何奇怪的问题——我可以通过VPN顺畅地从WSL2访问这些服务器。你有哪些关于“负面评论”的文章链接吗?
我的第一个迹象是从pauljohn32在此页底部的一个评论中开始的。



在Google上搜索“wsl vpn conflict”会发现很多信息,包括以下在wsl github页面上的公开问题(第一个搜索结果):

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

在那之后,我没有深入挖掘具体的细节。或许你可以根据你个人的经验和看到的情况来澄清这个问题。
by
我已经将Windows VPN连接到我们的服务器集群(使用内置VPN,但在服务器端是Cisco设备),我仍然可以从WSL2向任何服务器执行curl操作——无论在DMZ内部还是外部——并且在VPN连接的情况下,我还可以在WSL2上启动google-chrome并与我想访问的任何网站交互。我没有/etc/wsl.conf,因此/etc/resolv.conf文件会自动生成。

我目前使用的是Windows 11上的最新WSL2版本(我已经使用Insider版本超过七年了)。我想WSL2推出不久后,确实出现了一些与网络相关的问题,但已经很久没有遇到任何问题了。
by
根据具体的VPN,支持情况好坏不一。
...