HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
emezeske
lein-cljsbuild
Clojure2011–2014
emezeske / lein-cljsbuild

lein-cljsbuild

Leiningen plugin to make ClojureScript development easy.

11Distinct people
11Mentions
0Explicit recommenders
1.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Leiningen plugin to make ClojureScript development easy.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 10:01:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year11 dated mentions

Observed mentions: 2011-12-31 05:54:37 UTC to 2014-12-24 07:39:27 UTC.

0123452011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20112012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2014

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC110
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC202
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC505
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC303

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
lein-cljsbuild Latest version: This is a Leiningen plugin that makes it quick and easy to automatically compile your ClojureScript code into Javascript whenever you modify it. It's simple to install and allows you to configure the ClojureScript compiler from within your project.clj file. Beyond basic compiler support, lein-cljsbuild can optionally help with a few other things: Launching REPLs for interactive development Launching ClojureScript tests The latest version of lein-cljsbuild is 1.1.8. See the release notes here. Note that cljsbuild crossovers are deprecated, and will be removed eventually. You should never use them. Please use either reader conditionals (available in Clojure >= 1.7.0-beta2 and ClojureScript >= 0.0-3255), or cljx to target both Clojure and ClojureScript from the same codebase. If you are using ClojureScript >= 1.7.170 you need to use a lein-cljsbuild version >= 1.1.1. Requirements The lein-cljsbuild plugin works with Leiningen version 2.1.2 or higher. Installation You can install the plugin by adding lein-cljsbuild to your project.clj file in the :plugins section: (defproject lein-cljsbuild-example "1.2.3" :plugins [[lein-cljsbuild "1.1.8"]]) In addition, you should add an explicit ClojureScript dependency to your project using the ClojureScript version you want to use: :dependencies [[org.clojure/clojurescript "1.9.521"]] lein-cljsbuild will add a dependency to your project if it doesn't already contain one, but that functionality will not remain for long. The latest version of lein-cljsbuild currently requires a minimum of ClojureScript 0.0-3211. Just Give Me a Damned Example Already! See the example-projects directory for a couple of simple examples of how to use lein-cljsbuild. The simple project shows a dead-simple "compile only" configuration, which is a good place to start. The advanced project contains examples of how to use the extended features of the plugin. For an exhaustive list of all options supported by lein-cljsbuild, see the sample.project.clj file. For a list of options that can be passed to the ClojureScript compiler have a look at the ClojureScript Compiler Options site. Basic Configuration The lein-cljsbuild configuration is specified under the :cljsbuild section of your project.clj file. A simple project might look like this: (defproject lein-cljsbuild-example "1.2.3" :plugins [[lein-cljsbuild "1.1.8"]] :cljsbuild { :builds [{ ; The path to the top-level ClojureScript source directory: :source-paths ["src-cljs"] ; The standard ClojureScript compiler options: ; (See the ClojureScript compiler documentation for details.) :compiler { :output-to "war/javascripts/main.js" ; default: target/cljsbuild-main.js :optimizations :whitespace :pretty-print true}}]}) Basic Usage Once the plugin is installed, you can build the ClojureScript once: $ lein cljsbuild once Or you can have lein-cljsbuild watch your source files for changes and automatically rebuild them. This is recommended for development, as it avoids the time-consuming JVM startup for each build: $ lein cljsbuild auto Assuming you have configured cljsbuild to emit compiler output to one of Leiningen's :clean-targets (which includes ./target by default), running lein clean will delete all of the JavaScript and ClojureScript files that lein-cljsbuild generates during compilation. Color-coded output on Windows Colors are a big deal when reading ClojureScript compiler output, but Windows consoles don't support ANSI color codes. This limitation is commonly corrected by installing ANSICON: Download and unzip ANSICON anywhere. Open a command prompt (Run as administrator). Navigate to the unzipped folder. cd x86 or x64 (depending on whether you have 32-bit or 64-bit machine, respectively) Run ansicon -i to install. Afterwards, you should get colored output from all future console sessions that use ANSI color codes. Hooks Some common lein-cljsbuild tasks can hook into the main Leiningen tasks to enable ClojureScript support in each of them. The following tasks are supported: $ lein compile $ lein test $ lein jar To enable ClojureScript support for these tasks, add the following entry to your project configuration: :hooks [leiningen.cljsbuild] Note that by default the lein jar task does not package your ClojureScript code in the JAR file. This feature needs to be explicitly enabled by adding the following entry to each of the :builds that you want included in the JAR file. lein uberjar derives its behavior from lein jar and will include the ClojureScript as well if enabled. :jar true Debug Note: There is a known issue (#366) where the lein uberjar task fails to build when using hooks and a cljsbuild configuration within an :uberjar profile. Instead of hooks, you can use :prep-tasks as an alternative: :prep-tasks ["compile" ["cljsbuild" "once"]] Multiple Build Configurations If the :builds sequence contains more than one map lein-cljsbuild will treat each map as a separate ClojureScript compiler configuration, and will build all of them in parallel: (defproject lein-cljsbuild-example "1.2.3" :plugins [[lein-cljsbuild "1.1.8"]] :cljsbuild { :builds [ {:source-paths ["src-cljs-main"] :compiler {:output-to "main.js"}} {:source-paths ["src-cljs-other"] :compiler {:output-to "other.js"}}]}) This is extremely convenient for doing library development in ClojureScript. This allows cljsbuild to compile in all four optimization levels at once, for easier testing, or to compile a test suite alongside the library code. You can optionally assign an ID to a build configuration and build only that one: (defproject lein-cljsbuild-example "1.2.3" :plugins [[lein-cljsbuild "1.1.8"]] :cljsbuild { :builds [ {:source-paths ["src-cljs-main"] :compiler {:output-to "main.js"}} {:id "other" :source-paths ["src-cljs-other"] :compiler {:output-to "other.js"}}]}) $
Read the full README on GitHub

What Hacker News says

3 sources
It's definitely a lot to take on. I'd probably start with just plain Clojure to learn the syntax and how to do functional programming, then look into ClojureScript. Get comfortable using Lein and editing your project.clj, then check out this plugin: https://github.com/emezeske/lein-cljsbuild It's a big investment but learning Lisp will repay you. There's tons of classic CS literature that you'll now be able to unlock and immutability really is the future, so it's good to start getting acquainted with it.
In Removing User Interface Complexity, or Why React is Awesome
Would you articulate why it's a "no go" for you? Leiningen[1] takes away 99.9% of the pain of having to work directly with javac, maven, classpaths, etc. And lein-cljsbuild[2] offers a configuration-driven approach to compiling and testing. It's perfectly possible to create setups where node (plus grunt, gulp, shell scripts, make, etc.) "drives" leiningen, and vice versa. About a year ago I contributed such a setup[3] to David Nolen's mori library. [1] http://leiningen.org/ [2] https://github.com/emezeske/lein-cljsbuild [3] https://github.com/swannodette/mori/blob/master/package.json...
In The JavaScript Problem

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.