在我们的构建过程中(使用 grunt),我们将所有脚本连接、缩小和丑化为一个脚本(也意味着仅单个请求)。
现在 CKEditor 4 似乎正在使用模块样式加载方法。
谁能告诉我如何将 CKEditor 4 包含到具有所有必要资源的项目中,这样以后就不会动态加载了吗?
在我们的构建过程中(使用 grunt),我们将所有脚本连接、缩小和丑化为一个脚本(也意味着仅单个请求)。
现在 CKEditor 4 似乎正在使用模块样式加载方法。
谁能告诉我如何将 CKEditor 4 包含到具有所有必要资源的项目中,这样以后就不会动态加载了吗?
CKEditor 在两种模式下工作:
在开发(源)模式下:
ckeditor.js
文件,config.js
(您可以通过将config.customConfig设置为虚假值来关闭它),false
(自 4.1RC 起)或样式数组(直接设置),在发布(构建)模式下,您可以使用在线 builder或直接在dev repo中可用的预设构建器或 dev 构建器创建,事情得到了优化:
ckeditor.js
文件,config.js
和styles.js
文件是分开下载的,但是像在开发模式下你可以保存这2个HTTP请求,注意:所有 JS 和 CSS 文件在发布模式下都会被缩小。
您可以尝试优化一些事情。
ckeditor.js
与语言文件、对话框和 PSW 过滤器文件连接 - 因此所有 JS 文件都可以连接在一起 AFAIK。就是这样,我猜。我认为默认情况下,CKEditor 构建得到了很好的优化。你可以改进一些东西,但你不会节省很多时间,而且你会失去一些功能,比如自动语言识别。
我从Reinmar 的回答中实施了建议 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.,我通过设置和在配置中防止js
加载其他文件。customConfig: ''
stylesSet: false