假设我有一个小型的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版本会更容易吗?
答案 0 :(得分:0)
是的,如果第三方库提供非编译的ClojureScript版本会更容易。然后你需要它并从你的代码中使用它并将所有内容编译在一起。 ClojureScript编译器要求每个依赖项一次(甚至是共享依赖项),并且Google Closure编译器会对其进行优化,并传递所有代码。
尝试在Clojars中找到库或将其打包为jar,以便从现有的ClojureScript设置中使用它。 (如果图书馆是开源的,请给我们一个链接,我们会帮助您)