Thanks, Chad. I have built quite a few toy and production full-stack Clojure web apps over the past 6 years or so using leiningen and boot. While both of these are great tools with a lot of programmer hours invested in them, I realized recently that neither of them are particularly easy to explain to a novice Clojure programmer, particularly when you are using them to configure a full stack web development environment.
Since I hadn't yet tried doing any web dev with the Clojure CLI tools, this seemed like a good test project to get my feet wet. Despite the seemingly stripped-down set of options available in deps.edn (just :paths, :deps, and :aliases), it turned out that the :aliases feature really provides all you need to bootstrap a wide variety of build tasks directly into the clojure command. What I really like best about this approach is that I can now introduce new programmers to Clojure using command line conventions that they are likely already familiar with coming from many other popular languages like perl, python, ruby, or node. So now I can just type: ``` $ clojure ``` and get a REPL. Or I could type: ``` $ clojure script.clj ``` and I'm running a simple single-file Clojure program. If I need something more complicated, I can just define an alias for a build task a la carte and type: ``` $ clojure -A:my-task ``` Because taking this approach makes Clojure development look almost identical to building a program in any of the other languages I mentioned (and many more that I didn't), it makes the tooling very "easy" (in the Rich sense) for newbies that I need to train in our company. And when I want to play power-programmer, I get to have fun just cranking out new aliases for adventure and profit! And hey, if you've read along this far, here's a free alias for you to play with or modify to suit your needs: ``` :minify-css {:extra-deps {asset-minifier {:mvn/version "0.2.5"}} :main-opts ["-e" "(use,'asset-minifier.core),(minify-css,\"resources/public/css/style.css\",\"resources/public/css/style.min.css\")"]} ``` Have fun and happy hacking! Gary -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.