Liking cljdoc? Tell your friends :D

Clojurific

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.

Dependency information

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.

Getting Started

Questions, Feedback?

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.

Developers Welcome

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

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.

License

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 & Fogus
Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close