You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ClojureScript配置piggieback环境后编译报错且网页无法连接Weasel REPL

问题修复方案

核心错误原因

你目前遇到的连接失败问题,本质是两个前置错误导致的:

  1. ClojureScript源码文件后缀错误:你src目录下的核心代码文件命名为core.clj,.clj是Clojure服务端代码的标准后缀,ClojureScript编译器只会识别.cljs后缀的源码文件,找不到对应命名空间的源码,就是你执行build命令时报Could not write JavaScript nil错误的直接原因。
  2. 编译失败导致前端执行文件缺失:build命令执行报错后,out/main.js没有正确生成,HTML引用的是空/不存在的JS文件,自然不会执行Weasel连接逻辑。

额外配置问题

你project.clj中的依赖配置存在不规范和兼容性问题:
[org.clojure/tools.nrepl"0.2.10"] 缺少空格,且版本过低和你使用的cider/piggieback 0.5.2适配性不佳,可能引发后续REPL运行异常。

具体修复步骤

  1. 把src目录下的core.clj重命名为core.cljs
  2. 修正project.clj中dev环境的依赖配置:
:profiles {:dev {:dependencies [[cider/piggieback "0.5.2"]
                                [org.clojure/tools.nrepl "0.2.13"]]
                 :repl-options {:nrepl-middleware [cider.piggieback/wrap-cljs-repl]}}}
  1. 重启lein repl,重新执行编译命令:
(require 'cljs.build.api)
(cljs.build.api/build "src"
  {:main 'piggieback-project.core
   :output-to "out/main.js"
   :verbose true})

此时不会再抛出编译错误,out/main.js会正常生成。
4. 启动Weasel CLJS REPL:

(require 'weasel.repl.websocket)
(cider.piggieback/cljs-repl
  (weasel.repl.websocket/repl-env :ip "0.0.0.0" :port 9001))
  1. 打开根目录下的HTML文件,REPL会立即输出客户端连接成功的提示,即可正常使用CLJS REPL。

内容的提问来源于stack exchange,提问作者Anders Kitson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:21:01