gpt4 book ai didi

clojure - Clojure 中的 leiningen :repl-options {:init-ns 'user} for tools. deps 相当于什么?

转载 作者:行者123 更新时间:2023-12-02 02:49:46 29 4
gpt4 key购买 nike

我使用 Cursive 并将别名设置为 dev,当我运行 REPL 时,它不会加载 deps 配置文件中定义的命名空间:

 :aliases {:dev {:main-opts ["--init" "src/my/server/core.clj"
"--eval" "(my.server.core/-main)"]}}

最佳答案

我在命令行尝试了这个,它按预期工作,加载 my.server.core 然后运行它的 -main 函数,所以我怀疑 Cursive在别名上使用 -R 而不是 -A,因此它仅引入 :extra-deps 而不是 :main-opts (这只是一个猜测,我不使用草书)。我最好的建议是在 Clojurians Slack 上的 #cursive channel 中询问,因为这是 Cursive 支持的主要 channel (据我所知)。

我还将强调 Krisztian 的评论,即您可以使用 "-m""my.server.core" 作为整个 :main-opts,因为 -m 将加载命名空间并在其中运行 -main

但是,这些选项与 Leiningen 的 :init-ns 不同 - 我认为您需要的是:

{:aliases {:dev {:main-opts ["-e" "(require,'my.server.core)"
"-e" "(in-ns,'my.server.core)"]}}}

当您指定 :main-opts 时,这将禁止启动 REPL:

$ clj -A:dev
#object[clojure.lang.Namespace 0x3dddbe65 "my.server.core"]
$

因此您需要添加 -r 来告诉 Clojure CLI 您还希望启动 REPL:

clj -A:dev -r
#object[clojure.lang.Namespace 0x433ffad1 "my.server.core"]
my.server.core=> (doc -main)
-------------------------
my.server.core/-main
([& args])
I don't do a whole lot ... yet.
nil
my.server.core=>

关于clojure - Clojure 中的 leiningen :repl-options {:init-ns 'user} for tools. deps 相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62193057/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com