ClojureScript compiled to ES modules, bundled by Vite.
Clojurific is a fork of ClojureScript
by Whimsical. Its :module-format :esm compiles every
namespace to an ES module and leaves bundling, minification, npm packages and
TypeScript to Vite, without the Google Closure Compiler. It includes a Vite
plugin, hot reloading and an nREPL server evaluating in the browser. See
ESM.md for usage, design and known gaps. The classic compiler
(cljs.main, cljs.build.api) is still there and needs the Closure Compiler,
see Dependencies.
It's based on ClojureScript's master after the 1.12.145 release; see
CHANGELOG.md for where it forked and what it changed. It keeps ClojureScript's
namespaces (cljs.core, cljs.analyzer, …), so libraries written for
ClojureScript work unchanged.
Status: experimental.
Versions are 0.<minor>.<release>: <minor> is the ClojureScript 1.x release
it's compatible with (12 for 1.12.x), <release> counts Clojurific's releases,
starting from 1.
npm create clojurific@latest
scaffolds a Vite project (Vanilla, Reagent or UIx), installs it and starts the dev server. It needs Node.js 20 and Java 17 or later, and offers to download Java when there's none.
Clojure deps.edn, from Clojars:
com.whimsical/clojurific {:mvn/version "0.12.2"}
or as a git dependency:
com.whimsical/clojurific {:git/url "https://github.com/WhimsicalCode/clojurific"
:git/sha "…"}
npm, with the cljf launcher, which
needs Java but not the Clojure CLI: npm install clojurific.
Stock ClojureScript (org.clojure/clojurescript) has the same namespaces, so
it mustn't be on the classpath too: cljs.esm fails at startup, naming both,
when it is. Exclude it from the library that brings it in with
:exclusions [org.clojure/clojurescript], or from the whole dependency tree
with the empty project in no-clojurescript/:
:override-deps {org.clojure/clojurescript {:git/url "https://github.com/WhimsicalCode/clojurific"
:git/sha "…"
:deps/root "no-clojurescript"}}
The rest of this README is upstream's, about ClojureScript itself. Report
problems with the fork's additions (cljs.esm, the Vite plugin) to
WhimsicalCode/clojurific
instead.
Please point all of your questions and feedback to the
Clojure mailing list. There
is a community run
ClojureScript user mailing list and
the IRC channel, #clojurescript on freenode.net, is quite active.
There is also a community run Slack channel. The
Jira bug/feature tracking application is located at
https://clojure.atlassian.net/browse/CLJS. Before submitting issues
please read the
Reporting Issues
page first.
ClojureScript operates under the same license as Clojure. All contributors must have a signed CA (Contributor's Agreement) and submit their patch via the appropriate channels. If you're interested in contributing to the project, please see the contributing page on clojure.org. For more information about working on the compiler and testing check the Developer section of the wiki.

YourKit has given an open source license for their profiler, greatly simplifying the profiling of ClojureScript performance.
YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.
Copyright (c) Rich Hickey. All rights reserved. The use and
distribution terms for this software are covered by the Eclipse
Public License 1.0 (https://opensource.org/license/epl-1-0/)
which can be found in the file epl-v10.html at the root of this
distribution. By using this software in any fashion, you are
agreeing to be bound by the terms of this license. You must
not remove this notice, or any other, from this software.
Can you improve this documentation? These fine people already did:
David Nolen, dnolen, davidnolen, Kaspars Dancis, Alex Miller, Devin Walters & FogusEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |