cljsbuild - Multiple ClojureScript files on same page -


i have project using jasmine test javascript. trying switch using clojurescript front end. project.clj like

(defproject myproject "0.1.0-snapshot"   :dependencies [[org.clojure/clojure "1.5.1"]                  [org.clojure/clojurescript"0.0-1889"]                  [org.clojure/google-closure-library-third-party "0.0-2029"]                  [domina "1.0.0"]                  [hiccups "0.2.0"]]   :plugins [[lein-cljsbuild "0.3.3"]]   :cljsbuild {               :builds [{                         :source-paths ["src/clojurescript"]                         :compiler {                                    :output-to "public/javascripts/main.js"                                    :optimizations :whitespace                                    :pretty-print true}}                        {                         :source-paths ["spec/clojurescript"]                         :compiler {                                    :output-to "spec/javascripts/mainspec.js"                                    :optimizations :whitespace                                    :pretty-print true}}]}) 

so .cljs files in src/clojurescript compiled main.js , .cljs in spec/clojurescript compiled mainspec.js. when load jasmine page, both .js files loaded tests aren't run. in console error: namespace "goog.debug.error" declared. both .js files have same ~30k lines of google closure code @ top causing error. if delete code mainspec.js runs fine. there way tell cljsbuild leave code off spec file?

as jared314 , zubair pointed out, problem you're encountering caused trying include 2 clojurescript compilation outputs in same page. clojurescript/google closure expect 'whole-world' compile, is, compiler expects of code entire page passed compiler can optimise it, rename functions, , spit out single javascript file. it's not designed produce multiple output files work together.

the 'correct' way solve problem produce 2 outputs used in isolation: main.js file running application, , spec.js file include code in main plus code in spec testing. can setting project this:

:cljsbuild {           :builds [{                     :source-paths ["src/clojurescript"]                     :compiler {:output-to "public/javascripts/main.js"}}                    {                     :source-paths ["src/clojurescript" "spec/clojurescript"]                     :compiler {:output-to "spec/javascripts/spec.js"}}]}) 

your jasmine page should refer spec.js not main.js - referring both cause of error.


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -