在我们的构建过程中(使用grunt),我们将所有脚本连接,缩小和uglify为一个脚本(也仅表示单个请求)。
现在CKEditor 4似乎正在使用模块样式加载方法。
有人可以告诉我如何将CKEditor 4包含在一个包含所有必需资源的项目中,以便以后不再进行动态加载吗?
答案 0 :(得分:46)
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构建得到了很好的优化。你可以改进一些东西,但不会节省很多时间,你会失去一些功能,如自动语言识别。
答案 1 :(得分:1)
我实施了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所示)。
这些是最严重的黑客攻击,但对于我目前的使用,这些黑客所启用的优化是值得的。
此外,代替实施建议1.,我通过在配置中设置js
和customConfig: ''
来阻止加载其他stylesSet: false
个文件。