[英]While developing Clojure, is running the dev environment with npm incompatible with Emacs Cider?
我是 Clojure 的新手,而不是 Javascript 的专家。 我正在观看Reagent课程的免费部分。
按照课程repo上的说明,在执行git clone
和npm install
之后,作者指示运行$ npm run dev
。 一切正常。 我可以在我的http://localhost:3000/
上看到该应用程序。
由于我是 Emacs 的重度用户,我决定启动Cider ,这是一个 emacs 包,它使 Emacs 成为 Clojure 的 IDE。 因此,我会使用 REPL 进行交互式编程。
在 Emacs cider-jack-in
执行后,返回错误。 Emacs 表示:
进程前哨错误:无法启动 nREPL 服务器:shadow-cljs - 配置:/home/pedro/projects/learn-reagent-course-files/giggin/shadow-cljs.edn shadow-cljs - 连接到服务器服务器已经运行
虽然在npm run dev
之后无法进行cider-jack-in
,但可以成功使用cider-jack-in
。 为此,我只需要退出所有内容,无需处理 npm,只需在 repo 上执行cider-jack-in
即可。
为什么会这样? Emacs cider 与npm run dev
不兼容吗? 与已经运行的服务器不兼容?
关于错误信息的内容,Cider、npm 进程和 shadow-cljs 之间是什么关系?
我不能评论任何 Cider/Emacs 特定的东西,因为我自己不使用它。 但是,我可以尝试弄清楚正在做的事情:
npm run dev
只是运行npx shadow-cljs watch app
(参见package.json
"scripts"
)。 它只是一个别名,使它更短一些。 因此,它启动 shadow-cljs 并开始app
构建编译并持续关注变化。
另一方面,我相信cider-jack-in
也会启动一个全新的 JVM,它将完全独立,不知道或连接到通过npm run dev
启动的 shadow-cljs 进程。
可以只使用从cider-jack-in
获得的 REPL 中的shadow-cljs
,但我不知道cider-jack-in
可能已经为您做什么的任何细节。 也许关于 REPL 使用的文档可以提供一些帮助?
相反,您也可以跳过cider-jack-in
,而是让 Cider 连接到由npm run dev
启动的shadow-cljs
实例。 我相信该命令是cider-connect
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.