Javascript Dojo toolkit和dgrid的闭包编译器外部程序
是否有人必须共享dojo和dgrid的外部定义文件 我正试图在我的clojurescript项目中包含这些内容,甚至使用“简单”的clsure编译器优化选项 目前,我发现dgrid和dojo工具包与Clojurescript编译过程不兼容。 换句话说,这是不可能的 a) 包括dojo或dgrid with:foreign libs选项,然后利用 closurecompiler使用closurecompiler:advanced或偶:simple选项创建一个“缩小版” b) 也不可能包含带有:extern选项的dojo或dgrid库 因为为此,必须创建外部定义列表(dojo/dgrid版本中没有) 我很确定选项(a)是一条死胡同,因为为了让它工作,dojo团队需要对工具箱进行更改,而且优先级可能较低。我已经阅读了Stephen Chung的50多页文档,该文档介绍了如何修改dojo以与google closure配合使用,但它远远超出了我为dojo 1.9及更高版本重新实现的能力 我想(b)可能最终会起作用,但为此我需要找到externs库。 希望有人已经为Dojo1.9和最新的dgrid完成了它 在这里发布之前,我已经检查了闭包编译器当前可用的“externs”存储库,而dojo不在那里 我还发现了一个externs的在线提取器 及 但是,我甚至不确定dgrid/dojo文件要做什么Javascript Dojo toolkit和dgrid的闭包编译器外部程序,javascript,dojo,google-closure-compiler,clojurescript,dgrid,Javascript,Dojo,Google Closure Compiler,Clojurescript,Dgrid,是否有人必须共享dojo和dgrid的外部定义文件 我正试图在我的clojurescript项目中包含这些内容,甚至使用“简单”的clsure编译器优化选项 目前,我发现dgrid和dojo工具包与Clojurescript编译过程不兼容。 换句话说,这是不可能的 a) 包括dojo或dgrid with:foreign libs选项,然后利用 closurecompiler使用closurecompiler:advanced或偶:simple选项创建一个“缩小版” b) 也不可能包含带有:ex
因此,请查看是否有人已经创建了这些外部程序。您可以使用他们自己的源文件作为外部程序定义。显然,这意味着编译器无法优化库,但如果如您所说,您不需要优化库,那么这是一个很好的工作选项。我对ClojureScript中的dojo/dgrid没有经验,但我已经在ClojureScript中使用了多个javascript库 在ClojureScript中使用复杂库的最佳方法就是不要触摸它们,也不要在它们上运行Google Close。(你称之为(b))。 因此,您需要在externs.js中放入很少的externs定义 仅适用于从ClojureScript代码访问的特定变量/函数。您不需要externs.js来处理他们声明的所有内容。 Google Closure编译器将只在您的代码上运行,而不是在外部js库上运行。 只有在以下情况下,才需要放置外部对象: 1.从js代码中调用cljs函数(避免调用js中没有的munged函数名) 2.从cljs代码中调用js库函数(避免在函数调用中使用函数名) 因此,不需要事先做任何工作,您需要为所做的特定调用放置一个小的externs文件