请在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别名的repl,并且在启动后通过cider-connect连接到它。一切正常。

理论上有一些包装的二进制文件,例如:https://github.com/borkdude/deps.clj,可以作为替代命令提供。希望 PowerShell 的变体现在已经生效(至少在 cider 中如此)。

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

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

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

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

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

"Clojure" 本身实际上只是你作为项目依赖项使用的库 -- 你其实并不真正 "安装" 它。从 Clojure 1.9 开始,没有可以下载和使用单个 JAR 文件的选项 -- 你必须将她作为依赖项使用:Leiningen 或 Clojure CLI(或 Boot,但你并没有询问这个问题)。

by
是的,我认为我理解了。根据我的理解,"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和Leiningen让它工作;我只是希望作为一项学习练习更好地理解这个备选工具链——重叠和冲突的工具链有点混乱。
(已编辑 -- 不小心重复发布了之前的回复)
无谓讨论,我认为现在Windows系统上最佳的开发环境是使用WSL2,并在其中运行所有的Clojure/Script相关内容 —— 因为在Linux环境下一切都会“Just. Work。”(顺利工作),因为几乎所有的Clojure/Script项目都以macOS/Linux为靶标。我就是这样在Windows上使用一个120k行数的Clojure代码库工作的,使用Docker进行Elastic Search、Redis和Percona,一切按照教程和书籍上的方法运行得非常顺利。在Clojure世界里,Windows一直是个二等公民,你会发现很多教程和项目要么在Windows上根本不能运行,要么需要对某些东西进行一些特殊处理。
是的,我也已经遇到标准Clojure的这些痛点。

我一直对WSL2很好奇,但后来我了解到一些关于它不兼容VPN使用的情况,而这正是我当前在家工作的常景。
我使用VPN访问我们的测试/生产服务器,并且在WSL2上没有遇到任何奇怪的问题 —— 我可以通过VPN从WSL2访问那些服务器。你有没有网上讨论“问题”的文章链接?
我的第一个线索是来自pauljohn32在页面底部的评论。

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

在Google上搜索“wsl vpn冲突”可以找到很多结果,包括在wsl GitHub页面上的以下公开问题(第一个搜索结果)

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

之后我没有继续深挖以了解具体细节。也许你可以根据自己的经验以及你在那里看到的来澄清这个问题。
by
我刚刚将Windows VPN连接到我们的服务器集群(使用内置VPN,但服务器端是思科的东西),我仍然可以从WSL2中curl到任何服务器——无论是DMZ内部还是外部——我还可以在WSL2上启动google-chrome并与我想要的任何网站交互,当我连接VPN时。我没有/etc/wsl.conf,所以给我自动生成了/etc/resolv.conf文件。

我现在使用Windows 11上的最新WSL2版本(我已经用了超过七年的Insider版本)。我想在WSL2推出不久后,可能存在一些网络相关的问题,但已经很长时间没有遇到任何问题。
by
支持似乎是因VPN的不同而参差不齐
...