Ace Editor ace.js文件大小

amb*_*use 6 javascript editor ace-editor

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

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

a u*_*ser 12

ace.js是294kb已经建立和缩小版本,所以没有办法大幅度减少这一点.

这种尺寸差异有两个原因

  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
    
    Run Code Online (Sandbox Code Playgroud)

    其他:比如,在用鼠标选择文本时轻松自由滚动,在页面上选择动画上/下,从排水沟中选择线条,更好的toggleComment,智能gotoLineEnd,缩进指导等更难以删除,因为它们不是独立模块.

    但是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
    
    Run Code Online (Sandbox Code Playgroud)

    最重要的尺寸是uglify + zip,它没有那么大的不同

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

    • 它使用了许多闭包(ace几乎从不使用闭包)
    • 它包含很少的用途this (493vs 4373- ace--)
    • 不使用模块,一切都在一个文件中,不像ace有59个模块
    • 它有更短的变量名称

因此,如果您需要一个非常小的编辑器,或者不喜欢ace工作的方式并希望重新实现其中的大部分,那么Codemirror是更好的方法.

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


小智 0

为什么不直接使用 CodeMirror 呢?恕我直言,这真是太棒了。