ビルドプロセス(gruntを使用)では、すべてのスクリプトを1つのスクリプトに連結、縮小、および醜くします(これは、単一の要求のみを意味します)。
現在、CKEditor4はモジュールスタイルの読み込みアプローチを使用しているようです。
CKEditor 4を必要なすべてのソースを含むプロジェクトに含めて、後で動的ロードが行われないようにする方法を教えてもらえますか?
CKEditorは2つのモードで動作します:
開発(ソース)モードの場合:
ckeditor.js
ファイルを含めます。config.js
をロードします( config.customConfig を偽の値に設定することでオフに切り替えることができます)、false
(4.1RC以降)またはスタイルの配列(直接設定)に設定しない限り、スタイルセットファイルをロードします。リリース(ビルド)モードでは、 オンラインビルダー 、 プリセットビルダー 、または 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);
どちらも初期化時に行われます(私のコードでは、3に示すように、ckeditor.replace
を呼び出す関数にあります)。
これらは最も確実なハッキングですが、私の現在の使用では、これらのハッキングによって可能になる最適化はそれだけの価値があります。
また、提案1を実装する代わりに、構成でcustomConfig: ''
とstylesSet: false
を設定することにより、他のjs
ファイルが読み込まれないようにします。