У меня есть проект, который использует Jasmine для тестирования JavaScript. Я пытаюсь переключиться на использование ClojureScript для внешнего интерфейса. Мой project.clj
похож на
(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}}]})
Итак, все .cljs
файлы в src/clojurescript
компилируются в main.js
, а все .cljs
в spec/clojurescript
компилируются в mainSpec.js
. Когда я загружаю страницу Jasmine, оба файла .js
загружаются, но тесты не запускаются. В консоли я получаю Error: Namespace "goog.debug.Error" already declared.
Оба файла .js
имеют одинаковые ~ 30 тыс. строк кода закрытия Google вверху, что вызывает ошибку. Если я удалю этот код из mainSpec.js
, он будет работать нормально. Есть ли способ сказать cljsbuild, чтобы он оставил этот код в файле спецификаций?