CIDER无法与shadow-cljs项目协同使用的解决方法求助
解决Clojure/CLJS项目中CIDER与shadow-cljs协同问题
1. 修复cider-jack-in提示npx shadow-cljs不在exec-path的问题
- 先在终端执行
which npx,确认npx的实际路径(M1 Mac上Homebrew安装的npx通常在/opt/homebrew/bin)。 - 如果终端能找到npx但Emacs找不到,在Emacs配置文件中添加路径:
(add-to-list 'exec-path "/opt/homebrew/bin") ; 替换为你的npx实际路径 - 也可以在项目根目录创建
.dir-locals.el文件,指定shadow-cljs命令路径:((clojure-mode . ((cider-shadow-cljs-command . "/opt/homebrew/bin/npx shadow-cljs")))) - 重启Emacs或重新加载配置后,再尝试
cider-jack-in。
2. 修复cider-connect连接失败的问题
- 启动
shadow-cljs watch app后,等待日志输出nREPL server started on port 8230(默认端口为8230,不是8320)。 - 执行
cider-connect时,主机仅需输入localhost,不要添加http://前缀(nREPL是TCP连接,无需HTTP协议标识),端口输入8230即可完成本地连接。
3. 修复SSH隧道连接失败的问题
nrepl-use-ssh-fallback-for-remote-hosts是针对远程主机的配置,本地连接完全不需要开启。将其设置为nil:(setq nrepl-use-ssh-fallback-for-remote-hosts nil)- 本地连接直接使用常规的
cider-connect即可,无需SSH隧道。
M1 Mac额外注意事项
- M1架构的Homebrew默认安装路径为
/opt/homebrew/bin,确保该路径在Emacs的exec-path列表中(可通过M-x exec-path查看当前路径),避免工具路径缺失导致的各种问题。
内容的提问来源于stack exchange,提问作者Pedro Delfino
相关产品推荐
相关产品推荐

