【问题标题】:CKEditor 4 build (minify and uglify)CKEditor 4 构建(缩小和丑化)
【发布时间】:2013-02-24 10:00:13
【问题描述】:

在我们的构建过程中(使用 grunt),我们将所有脚本连接、缩小和丑化为一个脚本(也意味着仅单个请求)。

现在 CKEditor 4 似乎正在使用模块样式加载方法。

谁能告诉我如何将 CKEditor 4 包含到具有所有必要源的项目中,这样以后就不会动态加载了吗?

【问题讨论】:

    标签: ckeditor


    【解决方案1】:

    我实施了来自 Reinmar's answer 的建议 2 和 3 - 我是这样做的:

    1. "编辑器 UI 样式表文件可能会与您的 页面的样式表,但您必须找到一种方法来阻止编辑器 从自己加载”
    var swap = CKEDITOR.skin.loadPart;
    CKEDITOR.skin.loadPart = function(res, callback) {
        if (res == 'editor') {
            console.log('Ignoring editor.css load');
            callback && callback();
            return;
        }
        swap(res, callback);
    }
    

    然后我将editor.css 捆绑到我的捆绑文件中。

    1. 内容样式表 - 即使您使用框架编辑器也可以将其删除,但您需要使用 fullPage 功能设置内容样式(不推荐)。
    // I copied the content.css from ckeditor-dev and loaded it into contentCss.
    var contentCss = 'put your css here';
    
    var config = {
        // Other things here
        // ...
    
        contentCss: contentCss
    };
    
    ckeditor.replace(element, config);
    

    两者都是在初始化时完成的(在我的代码中,它们位于调用ckeditor.replace 的函数中,如图3 所示)。

    这些确实是 hack,但就我目前的使用而言,这些 hack 启用的优化是值得的。

    另外,代替实施建议 1.,我通过在配置中设置 customConfig: ''stylesSet: false 来防止加载其他 js 文件。

    【讨论】:

      【解决方案2】:

      CKEditor 有两种工作模式:

      1. 在开发(源码)模式下:

        1. 您包含ckeditor.js 文件,
        2. 它会加载所有核心文件,
        3. 它会加载 config.js(您可以通过将 config.customConfig 设置为虚假值来关闭它),
        4. 它会加载样式集文件,除非您将 config.stylesSet 设置为 false(自 4.1RC 起)或一组样式(直接设置),
        5. 它会检查应该加载哪些插件,
        6. 它加载插件和这些插件的依赖项,
        7. 它加载插件的语言文件,
        8. 它初始化所有插件,
        9. 同时加载了一堆样式表文件(很少用于编辑器 UI,一个用于内容,除非是内联编辑器)和图标文件(每个按钮一个),
        10. 准备好了!
        11. 但是如果你打开一个对话框,它会加载对话框的 JS 文件;同样的,例如按需加载的单词过滤器中的粘贴;想法是这些东西一开始不需要,而且它们很重,所以最好稍后再加载。
      2. 在发布(构建)模式下,您可以使用online builderpresets builder 或直接在dev repo 中提供的开发构建器创建,优化:

        1. 您包含ckeditor.js 文件,
        2. 它包含构建中包含的所有核心文件和所有插件文件
        3. config.jsstyles.js 文件是分开下载的,但是和开发模式一样可以保存这2个HTTP请求,
        4. 一个语言文件加载了构建中包含的所有插件的翻译,
        5. 所有插件都已初始化,
        6. 加载了一个用于编辑器 UI 的样式表文件和一个用于内容的样式表文件(除非是内联编辑器),外加一个图标条,
        7. 准备好了!
        8. 对话框文件和文字过滤器文件中的粘贴会按需加载。

      注意:所有 JS 和 CSS 文件在发布模式下都会被压缩。

      你可以尝试优化一些东西。

      1. 您可以尝试将ckeditor.js 与语言文件、对话框和 PSW 过滤器文件连接 - 因此所有 JS 文件都可以连接在一起 AFAIK。
      2. 编辑器 UI 样式表文件可能会与您页面的样式表连接,但您必须找到一种方法来防止编辑器自行加载它。
      3. 内容样式表 - 即使您使用框架编辑器也可以将其删除,但您需要使用 fullPage 功能设置内容样式(不推荐)。
      4. 您不能将图标条与条合并。

      我猜就是这样。我认为默认情况下,CKEditor 构建得到了很好的优化。你可以改进一些东西,但你不会节省很多时间,而且你会失去一些功能,比如自动语言识别。

      【讨论】:

      • @Reinmar 在开发模式下,你能解释一下如何加载核心和插件的未缩小(Big 'n Slow)版本吗?
      • 检查样品。包含 ckeditor.js 就足够了 - 它会处理其余的事情。
      • 谢谢你,帮我省了很多挫折!
      • @Reinmar,嘿,你能看看我关于CKEditorhere的简单问题吗?
      • 您好,我使用在线构建器下载了发布(构建)模式。 ckeditor.js 文件已最小化,但 contents.css 文件未最小化。此外,您提到的其他一些内容(如单一语言文件)不存在(我有 2 个单独的语言文件)。这改变了吗?还是我错误地构建了我的编辑器? (我在构建器页面上按了“优化”)。
      猜你喜欢
      • 2018-04-13
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多