Hi Pete,

I haven't worked with the CLJS Webpack guide recently, but getting 
Clojurescript and Figwheel to work together is pretty straightforward in my 
experience.

I use the standard *clojure* build tool from here: 
https://clojure.org/guides/getting_started

When run from the command prompt, *clojure* reads a deps.edn file in the 
same directory. Here's an example of its contents for a basic web 
application:

*deps.edn*
{:paths ["src/clj" "src/cljs" "resources" "target"]

 :deps {org.clojure/clojure       {:mvn/version "1.10.1"}
        org.clojure/clojurescript {:mvn/version "1.10.597"}
        org.clojure/core.async    {:mvn/version "1.1.587"}
        org.clojure/data.json     {:mvn/version "1.0.0"}
        org.clojure/data.xml      {:mvn/version "0.0.8"}
        ring/ring                 {:mvn/version "1.8.0"}
        ring/ring-defaults        {:mvn/version "0.3.2"}
        hiccup/hiccup             {:mvn/version "2.0.0-alpha2"}
        reagent/reagent           {:mvn/version "0.10.0"}}

 :aliases {:compile-cljs {:main-opts ["-m" "cljs.main" "-co" 
"compile-prod.cljs.edn" "-c"]}
           :run-server   {:main-opts ["-m" "my-project.server"]}
           :figwheel     {:extra-deps {com.bhauman/figwheel-main 
{:mvn/version "0.2.4"}
                                       com.bhauman/rebel-readline-cljs 
{:mvn/version "0.1.4"}}
                          :main-opts ["-m" "figwheel.main" "-b" 
"compile-dev" "-r"]}}}


This file provides three custom aliases: compile-cljs, run-server, figwheel.

You can run any them like so:

$ clojure -A:figwheel

Each of these aliases references additional build files. So here they are 
for your reference:

*compile-dev.cljs.edn*
{:main          "my-project.client"
 :output-dir    "target/public/cljs/out"
 :output-to     "target/public/cljs/app.js"
 :asset-path    "/cljs/out"
 :source-map    true
 :optimizations :none
 :pretty-print  true}

*compile-prod.cljs.edn*
{:main            "my-project.client"
 :output-dir      "target/public/cljs"
 :output-to       "target/public/cljs/app.js"
 :source-map      "target/public/cljs/app.js.map"
 :optimizations   :advanced
 :pretty-print    false
 :closure-defines {"goog.DEBUG" false}}

*figwheel-main.edn*
{:watch-dirs ["src/cljs"]
 :css-dirs ["resources/public/css"]
 :ring-server-options {:port 8080 :join? false}
 :ring-handler my-project.handler/development-app}

With these files in place, you should be all set to start building your web 
application. You need to create *my-project.server/-main* (to start the web 
server), *my-project.handler/development-app* (to be your ring handler 
function), and *my-project.client* (to be the entrypoint file for your CLJS 
code). Everything else is up to you.

I created a repository awhile ago containing a web application template 
with all of these files and a good deal of default code to get you going. 
You can find it here:
https://gitlab.com/lambdatronic/clojure-webapp-template

Have fun and happy hacking!
~Gary

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/c2dcd440-50f8-4668-b45a-65601aeffd0c%40googlegroups.com.

Reply via email to