.cljc and server-side rendering
As discussed in many places throughout this book, Clojure and ClojureScript are very similar, but they are distinct languages. Clojure 1.7 released a feature called Reader Conditionals, which allows files to be loaded by both Clojure and ClojureScript.
There are a few interesting and powerful uses for reader conditionals as they apply to web applications. First, let's review what reader conditions actually are.
Reader conditionals are a new syntax which was added to Clojure 1.7 and ClojureScript. They create a new file extension, .cljc
, which stands for Clojure Commmon, and new syntax to support loading .cljc
files from Clojure, ClojureScript, and any future dialect.
.cljc
Clojure files that end in the .cljc
extension can be loaded by both Clojure and ClojureScript processes, with a few features and restrictions.
.cljc
files shouldn't directly reference host interoperability
forms because those aren't common across dialects. In Clojure, this means .cljc
should...