I attempted to do this by adding this to my project.clj:
:repl-options {:init (do (require 'cljs.repl.node)
(cider.piggieback/cljs-repl (cljs.repl.node/repl-env)))
:nrepl-middleware [cider.piggieback/wrap-cljs-repl]}
However, when I do this, I get:
> lein repl
Exception in thread "main" java.lang.IllegalStateException: Can't change/establish root binding of: *cljs-repl-env* with set, compiling:(/tmp/form-init6720131333940924525.clj:1:73)
at clojure.lang.Compiler.load(Compiler.java:7526)
at clojure.lang.Compiler.loadFile(Compiler.java:7452)
at clojure.main$load_script.invokeStatic(main.clj:278)
at clojure.main$init_opt.invokeStatic(main.clj:280)
at clojure.main$init_opt.invoke(main.clj:280)
at clojure.main$initialize.invokeStatic(main.clj:311)
at clojure.main$null_opt.invokeStatic(main.clj:345)
at clojure.main$null_opt.invoke(main.clj:342)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalStateException: Can't change/establish root binding of: *cljs-repl-env* with set
at clojure.lang.Var.set(Var.java:223)
at cider.piggieback$cljs_repl.invokeStatic(piggieback_impl.clj:184)
at cider.piggieback$cljs_repl.doInvoke(piggieback_impl.clj:146)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at user$eval1711.invokeStatic(form-init6720131333940924525.clj:1)
at user$eval1711.invoke(form-init6720131333940924525.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7062)
at clojure.lang.Compiler.eval(Compiler.java:7052)
at clojure.lang.Compiler.eval(Compiler.java:7052)
at clojure.lang.Compiler.eval(Compiler.java:7051)
at clojure.lang.Compiler.load(Compiler.java:7514)
... 12 more
So I've been using a shell script instead to start my repl:
Based on the README (https://github.com/nrepl/piggieback#usage), it seems like I need to execute
lein repl
, then:in order to get a cljs repl I can interact with.
I attempted to do this by adding this to my
project.clj
:However, when I do this, I get:
So I've been using a shell script instead to start my repl:
This seems weird to me - is this intended behavior or am I missing the proper way to set this up?