这是一个巨大的文件大小。Codemirror,一个相同口径的js编辑器,远远低于100KB大关。
似乎有一种方法可以构建ace.js。有没有办法在大幅减小文件大小的同时做到这一点?
发布于 2013-05-25 22:01:07
大小为294kb的ace.js已经构建并缩小了版本,因此没有办法大幅减少这个大小。
造成这种大小差异的原因有两个
而不是缩小的ace.js。。。。530kb -多选。。。。。。。。。484kb -折叠。。。。。。。。。。。451kb -括号匹配,突出显示选定的单词,搜索,工人。。。。429kb -内置主题,支持selectWord的unicode。。。401kb
其他:像是用鼠标选择文本时的自由滚动,页面上的动画向上/向下,从装订栏中选择线条,更好的toggleComment,智能gotoLineEnd,indentGuides等都很难删除,因为它们不是独立的模块。
但是Codemirror支持双向和可变大小的字体,这补偿了一些剩余的字体,所以我们就到此为止。截取的ace (让我们称之为ace--.js)的最终大小是401kb
文件|大小kb| zip |uglify|uglify+zip|uglify-m-c|+zip -------------|-------|------|------|----------|----------|---- ace.js | 530 | 106 | 374 | 91.8 |292 |81.1 ace--.js | 401 | 77.1279 | 65.2 |216 |56.5 codemirror.js| 212 | 55.6 | 144 | 40.1 |100 |33.1
最重要的是uglify+zip的大小,这并不是因为编码风格,Codemirrors风格是非常紧凑的
- it uses many closures _(ace almost never uses closures)_
- it contains very few uses of `this` _(__`493`_ _vs_ _`4373`_ _in ace--)_
- doesn't use modules, everything is in one file, _unlike ace which have 59 modules_
- and it has much shorter variable names
因此,如果你需要一个非常小的编辑器,或者不喜欢ace的工作方式并想要重新实现它的大部分,Codemirror是更好的选择。
但是,如果你需要一个和桌面编辑器一样的编辑器,而不需要增加300kb的代码,那么ace是一个更好的选择。
发布于 2013-05-25 02:27:46
为什么不简单地使用CodeMirror呢?这是非常好的IMHO。
https://stackoverflow.com/questions/12190356
复制相似问题