ClojureScript-Lib和我的ClojureScript在同一页面上

时间:2015-08-14 09:49:52

标签: javascript html google-closure-compiler clojurescript

假设我有一个小型的Web应用程序,并且想要使用已经编译过的ClojureScript版本的第三方库。

作为该库的用户,我必须在HTML页面中包含该生成的Javascript文件。

<script src="/javascript/gen/lib.js" type="text/javascript">

到目前为止一切顺利。一切正常。

但是由于我的网络应用程序需要一些前端魔法,我想要包含一些我自己的ClojureScript。所以我写了几行,将其编译为Javascript并在HTML头中添加了另一行:

<script src="/javascript/gen/lib.js" type="text/javascript">
<script src="/javascript/gen/my-stuff.js" type="text/javascript">

这就是丑陋的地方。我在javascript控制台中收到此错误:

Error: Namespace "goog.debug.Error" already declared.

在谷歌搜索该错误后,我得到多个页面,即该状态,我不能在一个页面上使用多个Google Closure Compiled内容。见SO: Multiple ClojureScript files on same page

那么,我该如何解决这种情况呢?一方面,我有一个已经Google Closure编译的lib,另一方面我有一个ClojureScript的东西。如何从中获取一个(或两个)编译的Javascript文件?

如果第三方lib提供非编译的ClojureScript版本会更容易吗?

1 个答案:

答案 0 :(得分:0)

是的,如果第三方库提供非编译的ClojureScript版本会更容易。然后你需要它并从你的代码中使用它并将所有内容编译在一起。 ClojureScript编译器要求每个依赖项一次(甚至是共享依赖项),并且Google Closure编译器会对其进行优化,并传递所有代码。

尝试在Clojars中找到库或将其打包为jar,以便从现有的ClojureScript设置中使用它。 (如果图书馆是开源的,请给我们一个链接,我们会帮助您)