-
Notifications
You must be signed in to change notification settings - Fork 790
Compiler Options
Here is list of compiler options that can be passed to the ClojureScript compiler.
The path to the JavaScript file that will be output.
:output-to "resources/public/js/main.js"
Sets the output directory for temporary files used during compilation. Defaults to "out".
:output-dir "resources/public/js/out"
The optimization level. May be :none
, :whitespace
, :simple
, or
:advanced
. :none
is the recommended setting for development, while
:advanced
is the recommended setting for production, unless something
prevents it (incompatible external library, bug, etc.).
:none
requires manual code loading and hence a separate HTML from
the other options.
Defaults to :none
.
:optimizations :none
See https://github.com/clojure/clojurescript/wiki/Source-maps
:source-map true
This flag will turn on compiler warnings for references to
undeclared vars, wrong function call arities, etc. Defaults to true.
:warnings true
This flag will cause all (assert x) calls to be removed during compilation Useful for production. Default is always false even in advanced compilation. Does NOT specify goog.asserts.ENABLE_ASSERTS which is different and used by the closure library.
:elide-asserts true
Determines whether the JavaScript output will be tabulated in a human-readable manner. Defaults to true.
:pretty-print true
Determines whether comments will be output in the JavaScript that can be used to determine the original source of the compiled code.
Defaults to false.
:print-input-delimiter false
If targeting nodejs add this line. Takes no other options at the moment.
:target :nodejs
Wrap the JavaScript output in (function(){...};)() to avoid clobbering globals. Defaults to true when using advanced compilation, false otherwise.
:output-wrapper false
Configure externs files for external libraries.
For this option, and those below, you can find a very good explanation at: http://lukevanderhart.com/2011/09/30/using-javascript-and-clojurescript.html
Defaults to the empty vector []
.
:externs ["jquery-externs.js"]
Adds dependencies on external libraries. Note that files in these directories will be watched and a rebuild will occur if they are modified.
Defaults to the empty vector []
:libs ["closure/library/third_party/closure"]
Adds dependencies on foreign libraries. Be sure that the url returns a HTTP Code 200
Defaults to the empty vector []
:foreign-libs [{ :file "http://example.com/remote.js"
:provides ["my.example"]}]
Prepends the contents of the given files to each output file.
Defaults to the empty vector []
:preamble ["license.js"]
Configure the input and output languages for the closure library.
May be :ecmascript3
, ecmascript5
, or ecmascript5-strict
.
Defaults to :ecmascript3
:language-in :ecmascript3
:language-out :ecmascript3
Configure warnings generated by the Closure compiler.
:closure-warnings {:externs-validation :off}}
- Rationale
- Quick Start
- Differences from Clojure
- [Usage of Google Closure](Google Closure)