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

我在这里取得的成果有限。以前工作时,在进行day of datomic培训时(仅使用工具依赖……),我就启动了一个powershell版本的repl和nrepl别名,并在启动后通过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,因此只为这种用途设置其他环境会有些麻烦。很不希望没有 something 更接近Windows下的"lein.bat",这样我们就可以像“苹果到苹果”那样在Leiningen中进行比较。

无论如何,我相信我可以通过 clojurescript 和 lein 来实现一些功能;我只是希望作为一个教育练习更好地理解这个替代工具链——重叠和冲突的工具链有点混乱。
(编辑 —— 无意中重复发布了之前的内容)
就个人观点而言,我认为目前在Windows上最好的开发环境是使用WSL2并在其中运行所有Clojure/Script相关内容——因为所有操作在Linux上都会“Just. Work.”。因为几乎所有的Clojure/Script项目都面向macOS/Linux。我就是以这种方式在Windows上使用120k行的Clojure代码库,使用了Docker来运行Elastic Search、Redis和Percona,所有的一切都按照教程和书籍中的描述正常工作。Windows在Clojure世界中一直被视为次等公民,你会发现大量教程和项目要么在Windows上完全无法工作,要么需要一些变通措施来解决某些问题。
by
是的,我也已经在标准Clojure上遇到了这些问题。

我一直在尝试使用WSL2,但后来我读了一些关于它不会与VPN协同工作的负面评价,而我现在的常驻工作方式就是通过VPN在家工作。
by
我使用VPN来访问我们QA/生产服务器,并且在WSL2上没有遇到过任何奇怪的问题——我可以通过VPN顺利地从WSL2访问那些服务器。你有关于“负面评价”的链接吗?
by
我第一次注意到这个问题是在页面底部的pauljohn32的评论中。

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

然后搜索“wsl vpn冲突”发现了很多内容,包括在WSL的GitHub页面上的以下开放问题(第一个搜索结果)

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

在找到这些信息后,我没有深入挖掘以了解确切细节。也许你可以根据你的个人经验和看到的内容来澄清这个问题。
我刚刚连接了 Windows VPN 到我们服务器集群(使用内置 VPN,但在服务器端是 Cisco 的产品),我仍然可以从 WSL2 向任何服务器(内部或 DMZ)进行 curl,并且我可以在 WSL2 上启动 google-chrome,并与我想要交互的任何网站进行交互,VPN 已连接。我没有 /etc/wsl.conf,所以我为我自动生成了 /etc/resolv.conf 文件。

目前,我正在 Windows 11 上使用最新的 WSL2 版本(我现在已经在各种内测版本上使用将近七年了)。我想,WSL2 推出后不久,确实有过一些与网络相关的问题,但我已经很久没有遇到任何问题了。
支持似乎取决于特定的 VPN
...