Ace Editor ace.js文件大小

时间:2012-08-30 05:22:29

标签: javascript editor ace-editor

来自github ace-builds存储库(https://github.com/ajaxorg/ace-builds)的缩小的ace编辑器js文件高达275KB。这是一个巨大的文件大小。 Codemirror,同等级别的js编辑远低于100KB标记。

似乎有一种方法可以构建ace.js.有没有办法在大幅减少文件大小的同时做到这一点?

2 个答案:

答案 0 :(得分:12)

294kb的ace.js已经构建并缩小版本,所以没有办法大幅减少这种情况。

这种尺寸差异有两个原因

  1. 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,其差别不大

  2. 第二个原因是编码风格,Codemirrors风格非常紧凑

    • 它使用了许多闭包(ace几乎从不使用闭包)
    • 它包含this 4934373在ace中的极少用途 - )
    • 不使用模块,一切都在一个文件中,不像ace有59个模块
    • 它的变量名称更短
  3. 因此,如果您需要一个非常小的编辑器,或者不喜欢ace工作的方式并希望重新实现其中的大部分,那么Codemirror是更好的方法。

    但是,如果您需要一个与桌面编辑器相同的编辑器而不添加300kb自己的代码,那么ace是更好的选择。

答案 1 :(得分:0)

为什么不简单地使用CodeMirror?这是非常好的恕我直言。