我正在使用 Cursive 并将别名设置为dev,当我运行 REPL 时,它不会加载 deps 配置文件中定义的命名空间:
:aliases {:dev {:main-opts ["--init" "src/my/server/core.clj"
"--eval" "(my.server.core/-main)"]}}
Run Code Online (Sandbox Code Playgroud)
我在命令行尝试了这个,它按预期工作,加载my.server.core然后运行它的-main函数,所以我怀疑 Cursive 正在使用-R别名,而不是所以-A它只是拉入:extra-deps而不是拉入:main-opts(这只是一个猜测,我不使用草书)。我最好的建议是在 Clojurians Slack 的频道中询问#cursive,因为这是 Cursive 支持的主要频道(据我所知)。
我还将强调 Krisztian 的评论,您可以将"-m" "my.server.core"其用作整个评论:main-opts,因为-m它将加载命名空间并-main在其中运行。
然而,这些选项与莱宁根的不:init-ns一样——我认为你需要的是:
{:aliases {:dev {:main-opts ["-e" "(require,'my.server.core)"
"-e" "(in-ns,'my.server.core)"]}}}
Run Code Online (Sandbox Code Playgroud)
当您指定 时:main-opts,这将禁止启动 REPL:
$ clj -A:dev
#object[clojure.lang.Namespace 0x3dddbe65 "my.server.core"]
$
Run Code Online (Sandbox Code Playgroud)
因此,您需要添加-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=>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
888 次 |
| 最近记录: |