来自
github ace-builds存储库(
https://github.com/ajaxorg/ace-builds)的缩小的ace编辑器js文件高达275KB.这是一个巨大的文件大小.
Codemirror,同样口径的js编辑远低于100KB标记.
解决方法
ace.js是294kb已经建立和缩小版本,所以没有办法大幅度减少这一点.
这种尺寸差异有两个原因
> 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风格非常紧凑
>它使用了许多闭包(ace几乎从不使用闭包)
>它包含很少的用途(493 vs ace 43–)
>不使用模块,一切都在一个文件中,不像ace有59个模块
>它的变量名称更短
因此,如果您需要一个非常小的编辑器,或者不喜欢ace工作的方式并希望重新实现其中的大部分,那么Codemirror是更好的方法.