首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dojo工具包和dgrid的闭包编译器外部

Dojo工具包和dgrid的闭包编译器外部
EN

Stack Overflow用户
提问于 2014-01-10 09:55:34
回答 2查看 190关注 0票数 2

是否有人必须共享dojo和dgrid的外部定义文件?

我正在尝试将它们包含在我的clojurescript项目中,甚至使用“简单”的clsure编译器优化选项。

目前,我发现dgrid和dojo工具包与Clojurescript编译过程不兼容。换句话说,不可能a)包含dojo或dgrid和:foreign-libs选项,然后利用闭包编译器创建一个'minified release using closure编译器:advanced or even :simple选项

b)也不可能包含带有:extern选项的dojo或dgrid库,因为为此必须创建一个外部定义列表(这在dojo/dgrid版本中不存在)。

我非常确定选项(A)是一个死胡同,因为要让它工作,dojo团队需要对工具包进行更改,而且它可能是低优先级的。我已经阅读了Stephen Chung的50+ pages文档,该文档介绍了如何修改dojo以使用google-closure,但在Dojo1.9和更高版本上重新实现它远远超出了我的能力范围。

我在想(B)最终可能会起作用,但为此我需要找到externs库。希望有人已经为dojo 1.9和最新的dgrid做到了这一点。

在这里发帖之前,我已经检查了闭包编译器当前可用的'externs‘的存储库,dojo不在那里https://code.google.com/p/closure-compiler/source/browse/#git%2Fcontrib%2Fexterns

我还找到了一个externs http://www.dotnetwise.com/Code/Externs/index.html的在线提取器

http://www.dotkam.com/2013/07/15/clojurescript-use-any-javascript-library/

但是,我甚至不确定要为哪些dgrid/dojo文件执行此操作。

因此,看看是否有人已经创建了这些externs。

EN

回答 2

Stack Overflow用户

发布于 2014-01-20 02:33:26

您可以使用它们自己的源文件作为externs定义。显然,这意味着编译器无法优化库,但如果如您所说,您不需要这样做,那么这是一个很好的选择。

票数 0
EN

Stack Overflow用户

发布于 2016-03-12 00:27:29

我没有在ClojureScript中使用dojo/dgrid的经验,但我已经在ClojureScript中使用过几个javascript库。

要在ClojureScript中使用复杂的库,最好的方法就是不要接触它们,也不要在它们上运行Google Closure。(你称之为(b))。因此,您只需要为从ClojureScript代码访问的特定vars/函数在externs.js中放置很少的externs定义。你不需要为他们声明的所有东西都使用externs.js。Google Closure编译器只能在您的代码上运行,而不能在外部js库上运行。只有在以下情况下才需要放入externs : 1.从js代码中调用cljs函数(以避免调用js中已有的参数函数名) 2.从cljs代码中调用js库函数(以避免在函数调用中使用参数名称)。

所以不需要做任何之前的工作,你只需要为你所做的特定调用放一个小的externs文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21034858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档