It looks much better when Boot or Lein is not involved.
(require '[figwheel-sidecar.repl-api :as repl-api :refer [cljs-repl]])
(def dev-config (merge compiler-config
{:optimizations :none
:source-map true}))
(defmethod task "figwheel" [[_ port]]
(repl-api/start-figwheel!
{:figwheel-options (when port
{:nrepl-port (some-> port Long/parseLong)
:nrepl-middleware ["cider.nrepl/cider-middleware"
"refactor-nrepl.middleware/wrap-refactor"
"cemerick.piggieback/wrap-cljs-repl"]})
:all-builds [{:id "dev"
:figwheel true
:source-paths [source-dir]
:compiler dev-config}]})
(when-not port
(cljs-repl)))