Leiningen Makes It Easy
Scaffold a Figwheel Project With Reagent Plugin
lein new figwheel jims-fancy-example-project --to-dir . -- --reagent
Writings about one coder's stories & experiences.
Reagent is an awesome marriage of a React, an industry standard web front-end based on immutable component state, with ClojureScript, a functional lisp programming language with a terse syntax that heavily leverages immutable data. This post is about how to easily create a Reagent project that will get you up and running with familiar tooling similar to other React and NodeJs.
Leiningen Makes It Easy
In the NodeJs world you have build tools like webpack, gulp, and grunt. You have scaffolding utilities like yeoman, slush, or framework-specific cli's. You have a central registry of modules: npm. In the Clojure / ClojureScript world the command line utility lein pretty much does it all. You can install it pretty easily on most platforms by just downloading an installer file and clicking though it.
Scaffold a Figwheel Project With Reagent Plugin
The Leiningen (referred to as lein in the command line) function new is what I'm using here to create a new project. The figwheel project is a well-known Clojure boilerplate by Bruce Hauman for a nice coding experience where your front-end automatically updates in the browser without the need for a refresh, thus preserving app state. The next argument is the same of your project which I am naming "jims-fancy-example-project" in this case. By default this will create a folder with the name you enter, but I often like to add the flag "--to-dir ." to instead create the files in the current directory. Finally, we add the "-- --reagent" flag to use the reagent plugin which scaffolds our application as a reagent app. Here's the full command below.
lein new figwheel jims-fancy-example-project --to-dir . -- --reagent The Awesomeness of ClojureScript
I first got into Clojure because I wanted to troll my boss by using the weirdest programming language I could find on codepad.io, but after learning and using it more I started to really appreciate it. Programmers who frequently use Clojure LOVE Clojure. Compared to JavaScript, the ClojureScript ecosystem is much, much smaller so it can be difficult to get help and build a team around a Clojure project, however many say that the terse syntax and declarative style make it much more readable and maintainable down the road. If you are a front-end programmer in 2017 I would not advise you to put all your eggs in one basket with ClojureScript, but I do believe that if you can understand a Reagent program it can really inspire you to use declarative functions, immutable state, and data-centric code.
0 Comments
Your comment will be posted after it is approved.
Leave a Reply. |
AuthorThe posts on this site are written and maintained by Jim Lynch. About Jim...
Categories
All
Archives
March 2023
|