我读到了Google Closure Compiler,我将尝试使用它来改善我的Web应用程序。但我认为它正在做同样的事情,如dojo shrinksafe。 有没有人试图将Google Closure Compiler用于复杂的dojo项目?
由于 本杰明
答案 0 :(得分:2)
是的,Google Closure Compiler适用于Dojo项目。因为Closure是从Dojo派生的,所以它有类似的概念(模块,加载器,构建等),所以有可能使用Closure Compiler和Dojo的一些高级功能,这不仅仅是简单的缩小。
我们(Dojo)将评估我们可以从Closure中重用和利用的内容,以及我们如何提高互操作性。显然它也将包括所有工具。
答案 1 :(得分:1)
Closure可能适用于任何有效的JavaScript代码。我给它喂了一个非常紧凑,模糊的版本的复杂Prototype项目,它吐出了一个完美的工作版本。因此,即使您的代码已经被Dojo缩小,您也可以在它上面使用Closure。但是,您应该选择其中一个。
答案 2 :(得分:1)
从Dojo 1.4开始(尚未发布,但代码位于Dojo的subversion主干中),您现在可以使用Closure Compiler作为Dojo构建过程的选项。这需要一些设置。 Instructions on how to use Closure Compiler with the Dojo build system
答案 3 :(得分:1)
Dojo 1.6与高级模式下的Closure Compiler兼容(经过一些小修改后)。
答案 4 :(得分:0)
我碰巧有12,000(如果你包括dojox / dijit导入的26,000)行dojo 1.3.2应用程序我即将发布。
我使用标准的dojo构建系统将它全部放入一个可爱的大兆字节文件中。然后我把它介绍给google封闭编译器,编译很好地将封装减少到350 kb,比yahoo ui少100kb,比shrinkwrap低150kb。当然,我像男人一样以高级模式完成了这一切。
到目前为止一直很好,然后是时候加载了!结果好坏参半。该网站似乎似乎工作,但我确实得到了一些麻烦的错误,告诉我无法找到dojo前缀背后的各种事情。我无法确切地知道发生了什么,因为我没有准备好萤火虫的封闭插件,但我没有注意到网站的实际操作问题 - 虽然我认为如果我看起来很努力,我会有找到了他们。
所以我认为封闭编译器似乎在我的compiled.js中重命名dojo名称空间,使它们与dojo.js不一致。似乎一个理想的解决方案是使用闭包编译器将dojo.js.uncompressed.js与我的blob.js.uncompressed.js结合起来。到目前为止,dojo库的大小减少了51kb! 糟糕的主意 dojo根本不喜欢这个并拒绝加载!它只是下载然后坐在那里以抗议谷歌的世界统治。
我已经对这个问题做了一些进一步的研究,从我读到的dojo 1.4.0确实支持'简单'模式下的闭包,但这是毫无意义的,因为当我读到闭包时,简单模式为yui提供了类似的压缩量
无论如何,这些都是我的想法,我看了一下封闭,它看起来像一个非常好的库。 css布局看起来比dijit简单得多,这是我非常喜欢的东西,我经常发现重写dijits比尝试正确地设置它们更容易。它似乎缺少我喜欢的dojo库的一些元素,比如dijit._Widget,dijit。 _container / contains当然还有着名的dojo.declare()。我想我可以重建这些,但我为什么要这样做?
增加: 哦,它似乎也缺乏一个好的RPC,彗星框架和发布/订阅者框架。除非我弄错了。不要误解我想要关闭,我不是任何想象力的道场辩护者,我只是喜欢道场的这些部分。从我的角度来看,增加要求和提供确实使其成为一个重要的竞争者。缺乏这种性质的有意义的系统使我远离jquery。