我是Clojure的新手,不是Javascript的专业人员。我正在观看关于Reagent的免费课程。
按照课程回购的说明,在完成git clone
和npm install
之后,作者指示运行$ npm run dev
。一切都很好。我可以在我的http://localhost:3000/
上看到这个应用程序。
由于我是Emacs的重度用户,我决定启动Cider,这是一个Emacs包,使Emacs成为Clojure的IDE。因此,我将使用REPL进行交互式编程。
在Emacscider-jack-in
中执行后,返回一个错误。Emacs表示:
进程sentinel中的错误:无法启动nREPL服务器:shadow-cljs-config:/home/pedro/projects/learn-agent课程文件/giggin/shadow-cljs.ednshadow cljs-已连接到服务器服务器已经在运行
虽然不可能在npm run dev
之后执行cider-jack-in
,但可以成功使用cider-jack-in
。要做到这一点,我只需要退出所有内容,而不需要处理npm,只需在repo上执行cider-jack-in
即可。
为什么会发生这种情况?Emacs苹果酒与npm run dev
不兼容吗?与已经运行的服务器不兼容?
关于错误消息内容,Cider、npm进程和shadow cljs之间有什么关系?
我不能评论任何Cider/Emacs特定的东西,因为我自己不使用它。然而,我可以尝试澄清正在做的事情:
npm run dev
只是运行npx shadow-cljs watch app
(参见package.json
"scripts"
(。它只是一个别名,使它变短了一点。因此,它启动shadowcljs并开始app
构建编译,并不断关注更改。
另一方面,我相信cider-jack-in
也启动了一个全新的JVM,它将完全独立,并且不知道或连接到通过npm run dev
启动的影子cljs进程。
可以只使用从cider-jack-in
获得的REPL中的shadow-cljs
,但我不知道cider-jack-in
可能已经为您做了什么。也许REPL使用方面的文档可以提供一些帮助?
您也可以跳过cider-jack-in
,让Cider连接到由npm run dev
启动的shadow-cljs
实例。我相信命令是cider-connect
。