Changes since Clojurific was forked from ClojureScript. For ClojureScript's own releases, see its changelog.
1.12.clojurific-0.12.2 wasn't recognised as up to date./src/app.cljs?v=1) weren't compiled or rewritten in dev.index.html, about/index.html) kept only one of them.server.fs.allow.cljf watch and its JVM kept running after a SIGINT sent only to cljf, i.e. by an IDE or a process supervisor.com.whimsical/clojurific, for the Clojure CLI and Leiningen.com.whimsical/clojurific of its version) instead of including its sources, which makes it 35 KB instead of 650 KB.1.12.clojurific-0.12.2, in compiled files' headers and cljs.core/*clojurescript-version*, instead of a hash of their sources.:module-format :esm compiles every namespace to an ES module without the Closure Compiler, leaving bundling, minification, npm packages and TypeScript to Vite. cljs.esm builds and watches with options files, profiles, build hooks and preloads, and builds reuse their previous output, recompiling the namespaces that depend on a changed API (ESM.md).vite build and vite build --watch and watches for the dev server, which hot reloads changed namespaces. It shows compiler errors and warnings in Vite's overlay and pauses hot reloading while there are warnings, like shadow-cljs. Production bundles drop unused protocol implementations, shorten ClojureScript's property names and are minified, with source maps and licence comments kept. A project's index.html is the dev server's page and an input of builds, its scripts and JavaScript modules can load ClojureScript sources (<script type="module" src="/src/my/app.cljs">) whose namespaces are compiled without listing them in :main, and the plugin writes a manifest of the entry points' scripts for server-rendered pages.:js-entries generate entry modules exporting vars under JavaScript names, for libraries and workers.:test-runner), run in Node.js or with Karma. Watching regenerates them as tests are added and removed.:extra-main adds namespaces to :main, as the Vite plugin does with the pages' scripts.:optimize-constants puts keyword and symbol constants in one shared module, :warnings-as-errors fails the compile on any warning, and :checked-set-literals false lets set literals collapse duplicates, as before CLJS-3415.:npm-interop :shadow binds CommonJS packages as shadow-cljs does, and shadow.resource, shadow.lazy's API (cljs.esm.lazy) and defclass work as in shadow-cljs.cljs_eval in the browser's console (only from the dev server's machine unless replRemoteConsole is set) and error stacks mapped to ClojureScript sources.cljs.esm fails at startup, naming both locations, when stock ClojureScript (org.clojure/clojurescript) is on the classpath too. no-clojurescript/ is an empty project that replaces it in a whole dependency tree through :override-deps.clojurific, with the cljf command, the Vite plugin (clojurific/vite) and the Karma adapter (clojurific/karma). cljf needs only Java and Node.js: it resolves deps.edn with tools.deps, adds the compiler, removes stock ClojureScript, and caches the classpath. Without Java 17 or later it explains how to install it, or downloads Eclipse Temurin with cljf setup-java.com.whimsical/clojurific. Namespaces stay cljs.*, so libraries written for ClojureScript work unchanged.cljs.closure, cljs.build.api, cljs.main and its REPLs) needs it, through the :closure alias. The analyzer reads the default externs' types from cljs/externs/default.edn.cljs.analyzer.api/resolve-extern, compiled to JavaScript, no longer expands the JVM's with-compiler-env, which warned of cljs.core/class.Can you improve this documentation?Edit 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 |