我有一个使用 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
文件在顶部都有相同的 ~30k 行 google 关闭代码,这导致了错误。如果我从中删除此代码mainSpec.js
运行良好。有没有办法告诉 cljsbuild 将此代码从规范文件中删除?