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 命令行接口的,这是一个与 lein 不同的工具,因此需要单独安装。

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

Clojure 命令行接口项目使用 deps.edn 文件来描述依赖等。

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

"Clojure" 本身实际上只是作为项目中依赖项使用的库 -- 你实际上不必“安装”它。自 Clojure 1.9 以来,没有单个 JAR 文件可以下载和使用 -- 你必须将 Clojure 作为依赖项使用 -- 因此你需要使用一些工具来处理你的依赖项管理:要么是 Leiningen,要么是 Clojure 命令行接口(或 Boot,但你没有询问这个)。

是的,我认为我理解了这一切。按照我理解,"clojure cli" 是我试图使其工作的 clj 命令行工具。我 already 已经有 clojure 和 leiningen 工作了,但我正在使用的 clojurescript 教程希望使用 clojure cli 工具(clj)。

我看到的获取 windows 命令行工具的唯一说明是安装 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项目都以macOS/Linux为目标。我用这种方法在Windows上处理一个有12k行Clojure代码库,使用Docker运行Elastic Search、Redis、Percona,并且所有这些都按照所有的教程和书籍来工作。Windows本身一直以来在Clojure世界中都是二等公民,你会发现那里相当多的教程和项目要么在Windows上完全不工作,要么需要一些解决方法。
是啊,我也在对标准clojure遇到那些痛点。

我曾经对WSL2有过一些兴趣,但是后来我读到了一些关于使用VPN时它表现不佳的负面评论,而现在我是每天远程工作的场景。
我使用VPN访问我们的QA/生产服务器,并且在使用WSL2时没有遇到过任何问题——我可以通过VPN顺利地从WSL2访问那些服务器。你是否有关于“负面评论”的文章链接?
我的第一个迹象是pauljohn32在这里页面底部附近的评论。

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

然后在谷歌上搜索“wsl vpn冲突”,出现很多结果,包括以下在wsl GitHub页面上的公开问题(第一个搜索结果)

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

在那之后,我没有深入挖掘以了解具体的细节。也许你可以根据自己的经验和看到的内容来澄清这个问题。
我刚刚将Windows VPN连接到我们的服务器集群(使用内置VPN,但服务器端是思科的产品),我仍然可以从WSL2到任何服务器进行curl命令,无论是DMZ内部还是外部,并且我可以在WSL2上启动google-chrome并与我想要交互的任何网站进行交互,同时VPN处于连接状态。我没有/etc/wsl.conf,所以我使用的/etc/resolv.conf文件是自动生成的。

目前我正在使用Windows 11上的最新WSL2版本(我已经使用内测版超过七年了)。我认为在WSL2推出后不久,确实出现过一些网络相关的问题,但很久以前就没有遇到任何问题。
对不同VPN的支持情况可能有所不同
...