请在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

在这里我取得的成功有限。在以前处理窗口时,对于datomic培训日(仅限于tools.deps...),我只是使用powershell版本和nrepl别名启动了一个repl,并且在启动后通过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和lein的正常工作,但我在使用的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上“一切都会顺利运行”,因为几乎所有的Clojure/Script项目都是针对macOS/Linux开发的。我就是用这种方式在Windows上处理一个拥有12万行Clojure代码库的工作,并使用Docker来运行Elastic Search、Redis和Percona,所有的教程和书籍都运行得非常好。Windows在Clojure世界中一直处于次要地位,你会发现很多教程和项目要么在Windows上完全无效,要么需要对某些问题进行解决。
是的,我也遇到了标准Clojure的这些问题。

我一直对WSL2感到好奇,但后来我读到一些关于WSL2在某些情况下不太配合VPN的信息,而VPN是我现在远程工作的常态。
我用VPN访问我们的QA/生产服务器,并在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,但服务器端是Cisco设备),我仍然可以从WSL2对任何服务器进行curl操作——无论是DMZ内部还是外部,并且我可以在WSL2上启动google-chrome并与之交互,同时VPN已连接。我没有/etc/wsl.conf,所以/etc/resolv.conf文件是由系统自动生成的。

目前我正在Windows 11上使用最新的WSL2版本(我已经使用一切产品的Insider版本超过七年了)。我认为在WSL2发布后不久,可能存在一些与网络相关的問題,但我已经很久没有遇到任何问题。
by
看起来支持效果因VPN类型而异
...