Как загрузить ckeditor через requirejs - PullRequest
12 голосов
/ 03 января 2012

У меня возникают проблемы при попытке загрузить ckeditor с помощью requirejs (я пытался преобразовать основной js-файл ckeditor в отдельные модули, но это только привело к тому, что весь ад вышел из строя), и поэтому я сейчас проверяю, есть лиэто очень простой способ сделать это, что я пропустил.

Я знаю, что requirejs позволяет вам загружать обычные js-скрипты, так что, возможно, просто загрузите файл ckeditor.js (без редактирования, так что это все еще IIFE /самовыполняющаяся функция) - будет ли это работать с requirejs или если вы используете requirejs для загрузки модулей, тогда весь проект должен быть основан на модуле?

Любая помощь приветствуется.

ВидС уважением, Марк

Ответы [ 3 ]

26 голосов
/ 10 августа 2012

В качестве альтернативы, вы можете создать оболочку RequireJS для загрузки вещей в правильном порядке и присвоить псевдонимы имен модулей RequireJS в дистрибутивные файлы CKEditor.

Это означает, что ваш модуль по-прежнему заявляет, что он зависит от CKEditor, что намного приятнее, чем просто показывать его по волшебству.

require.config({
shim: {
    'ckeditor-jquery':{
        deps:['jquery','ckeditor-core']
    }
},
 paths: {
    "jquery": '/javascript/jquery-1.7.1/jquery.min',
    'ckeditor-core':'/javascript/ckeditor-3.6.4/ckeditor',
    'ckeditor-jquery':'/javascript/ckeditor-3.6.4/adapters/jquery'
}
});

тогда в модуле вы можете зависеть от ckeditor-jquery (или, если уж на то пошло, ckeditor-core, если вам не нужна интеграция с jQuery) и знаете, что она будет доступна:

require(
[
    "jquery",
    "ckeditor-jquery"
],
function( _jquery_ ) {

    $('#editorContent2').ckeditor({
        customConfig : '',
        skin:'office2003'
    });
}
}
2 голосов
/ 29 февраля 2016

Еще один способ сделать это:

var require = {
    "shim": {
        "path/foo/ckeditor/ckeditor": { "exports": "CKEDITOR" }
    }
};

define(['moduleX', 'path/foo/ckeditor/ckeditor'], function (x, ckeditor) { 

     ckeditor.editor.prototype.fooFunc = function() {

     };
});
0 голосов
/ 04 января 2012

ОК, похоже, я ответил на свой вопрос здесь.

Вместо того, чтобы пытаться разбить ckeditor на модули, я просто использовал RequireJs для полной загрузки скрипта.`` `

...