来自github ace-builds存储库(https://github.com/ajaxorg/ace-builds)的缩小的ace编辑器js文件高达275KB。这是一个巨大的文件大小。 Codemirror,同等级别的js编辑远低于100KB标记。
似乎有一种方法可以构建ace.js.有没有办法在大幅减少文件大小的同时做到这一点?
答案 0 :(得分:12)
294kb的ace.js已经构建并缩小版本,所以没有办法大幅减少这种情况。
这种尺寸差异有两个原因
ace内置了更多功能。为了使比较公平,我们需要删除这些功能
not minified ace.js is . . . . 530kb
- multiselect . . . . . . . . . 484kb
- folding . . . . . . . . . . . 451kb
- bracketmatch, highlight selected
word, search, worker . . . . 429kb
- built in theme, unicode
support for selectWord . . . 401kb
其他人:像鼠标一样选择文字时自由滚动, pageUp / Down上的动画,从排水沟中选择线条, 更好的toggleComment,smart gotoLineEnd,indentGuides等。 更难删除,因为它们不是独立的模块。
但Codemirror支持双向和可变大小的字体 这补偿了剩下的一些 所以让我们停下来吧。减少ace的最终大小(我们称之为ace - .js)是401kb
file |size kb| zip |uglify|uglify+zip|uglify-m-c|+zip
-------------|-------|------|------|----------|----------|----
ace.js | 530 | 106 | 374 | 91.8 |292 |81.1
ace--.js | 401 | 77.1 | 279 | 65.2 |216 |56.5
codemirror.js| 212 | 55.6 | 144 | 40.1 |100 |33.1
最重要的尺寸是uglify + zip,其差别不大
第二个原因是编码风格,Codemirrors风格非常紧凑
this
(493
与4373
在ace中的极少用途 - ) 因此,如果您需要一个非常小的编辑器,或者不喜欢ace工作的方式并希望重新实现其中的大部分,那么Codemirror是更好的方法。
但是,如果您需要一个与桌面编辑器相同的编辑器而不添加300kb自己的代码,那么ace是更好的选择。
答案 1 :(得分:0)
为什么不简单地使用CodeMirror?这是非常好的恕我直言。