【发布时间】:2013-02-24 10:00:13
【问题描述】:
在我们的构建过程中(使用 grunt),我们将所有脚本连接、缩小和丑化为一个脚本(也意味着仅单个请求)。
现在 CKEditor 4 似乎正在使用模块样式加载方法。
谁能告诉我如何将 CKEditor 4 包含到具有所有必要源的项目中,这样以后就不会动态加载了吗?
【问题讨论】:
标签: ckeditor
在我们的构建过程中(使用 grunt),我们将所有脚本连接、缩小和丑化为一个脚本(也意味着仅单个请求)。
现在 CKEditor 4 似乎正在使用模块样式加载方法。
谁能告诉我如何将 CKEditor 4 包含到具有所有必要源的项目中,这样以后就不会动态加载了吗?
【问题讨论】:
标签: ckeditor
我实施了来自 Reinmar's answer 的建议 2 和 3 - 我是这样做的:
- "编辑器 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 捆绑到我的捆绑文件中。
- 内容样式表 - 即使您使用框架编辑器也可以将其删除,但您需要使用 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 文件。
【讨论】:
CKEditor 有两种工作模式:
在开发(源码)模式下:
ckeditor.js 文件,config.js(您可以通过将 config.customConfig 设置为虚假值来关闭它),false(自 4.1RC 起)或一组样式(直接设置),在发布(构建)模式下,您可以使用online builder、presets builder 或直接在dev repo 中提供的开发构建器创建,优化:
ckeditor.js 文件,config.js 和 styles.js 文件是分开下载的,但是和开发模式一样可以保存这2个HTTP请求,注意:所有 JS 和 CSS 文件在发布模式下都会被压缩。
你可以尝试优化一些东西。
ckeditor.js 与语言文件、对话框和 PSW 过滤器文件连接 - 因此所有 JS 文件都可以连接在一起 AFAIK。我猜就是这样。我认为默认情况下,CKEditor 构建得到了很好的优化。你可以改进一些东西,但你不会节省很多时间,而且你会失去一些功能,比如自动语言识别。
【讨论】:
ckeditor.js 就足够了 - 它会处理其余的事情。
ckeditor.js 文件已最小化,但 contents.css 文件未最小化。此外,您提到的其他一些内容(如单一语言文件)不存在(我有 2 个单独的语言文件)。这改变了吗?还是我错误地构建了我的编辑器? (我在构建器页面上按了“优化”)。