请在 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兼容)。

感谢你提到的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包,并且可以使用同一仓库(但默认情况下,它们可能使用不同版本)。您正在正确的道路上,只需继续即可。

编辑了
是的,这成功了,但这对我来说有点痛苦,因为工具托管在PowerShell中,而不是旧的Windows命令处理器中。我习惯了在emacs中托管这种shell版本,所以专门为此用例设置其他环境会很不方便。遗憾的是,没有更多类似Windows下的“lein.bat”的工具,以便像我这样的用户可以更好地进行“苹果对苹果”的对比。

无论如何,我相信我可以使用Clojurescript和Leiningen使其工作;我只是希望更好地了解这个替代工具链,作为教育练习——重叠和冲突的工具链有点混乱。
(已编辑——意外重复发布之前的回复)
就我个人而言,我认为现在在Windows上最好的开发环境是使用WSL2,并在其中运行所有的Clojure/Script代码 -- 因为在Linux上“只需正常工作”。因为几乎所有的Clojure/Script项目都以macOS/Linux为目标环境。我就是这样在一个包含12万行Clojure代码的基础上工作的,同时使用Docker来运行Elastic Search、Redis和Percona,所有教程和书籍均能正常运行。Windows在Clojure世界里一直是个二等公民,你会发现很多教程和项目要么在Windows上完全不能用,要么需要一些变通手段才能运行。
是的,我也遭遇了使用标准Clojure时遇到的那些痛点。

我一直在考虑使用WSL2,但后来我看到了一些关于它在使用VPN时表现不佳的负面评论,而这正是我目前每天在家工作的场景。
我使用VPN访问我们的QA/生产服务器,并在WSL2上没有遇到过任何奇怪的问题 -- 我可以从WSL2中顺畅地访问这些服务器。你有关于“糟糕的东西”的文章链接吗?
我的第一个迹象是页面底部pauljohn32的评论。

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

然后搜索“wsl vpn冲突”显示了相当多的结果,包括wsl GitHub页面的以下开放问题(第一个搜索结果)

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

此后我没有进一步挖掘以确定详细信息。也许你可以根据你个人的经验和看到的内容来澄清这个问题。
by
我刚刚将Windows VPN连接到我们的服务器集群(使用内置VPN,但服务器端是Cisco的东西),并且我仍然可以从WSL2向任意服务器进行curl操作——在内部或外部DMZ中——同时连接VPN,我可以在WSL2上启动google-chrome并与任何我想要的站点交互。我没有/etc/wsl.conf,所以/my/resolv.conf文件为我自动生成。

我目前使用的是Windows 11上的最新WSL2版本(我已经使用了七年多的Insider版)。我认为在WSL2推出不久后,确实存在一些网络问题,但已经很久没有遇到任何问题了。
by
VPN的支持似乎因特定VPN而异。
...