Использование Meteor с требованием

Как я могу интегрировать requirejs в приложение meteor и использовать AMD-модули, например, для моих модулей Backbone? Кто-нибудь это сделал и может сказать мне, какие шаги необходимы, чтобы заставить это работать?

Ответ 1

Один простой ответ (хотя, возможно, и не тот, который вы ищете) состоит в том, что вы можете просто использовать эти два независимо друг от друга. Другими словами, загрузите все ваши сценарии метеоритов, а затем начните загрузку сценариев требуемого ввода. Ваши скрипты, требующие от вас, смогут использовать материал Meteor просто отлично, без необходимости "импортировать" любой из них через Load loader.

Если вы хотите импортировать его, вместо этого вы должны создать для него параметр "shim".

Ответ 2

Вот как я загрузил Aloha Editor в Meteor и IronRouter. Aloha использует requirejs для загрузки всех своих зависимостей.

  • Распакуйте распределение Aloha в public/alohaeditor.
  • Переместите все файлы aloha css, за исключением aloha-common-extra.css, в client/lib/alohaeditor (не забудьте файлы из папки плагинов).
  • Во всех файлах aloha css повернуть относительные пути в абсолютные пути (замените все "../" на "/alohaeditor/').
  • Установите пакет wait-on-lib Метеор.
  • Добавьте следующий маршрут к вашему маршруту:

    onBeforeAction: function(pause)
        {           
        // Dynamically load require.js
        var one = IRLibLoader.load('/alohaeditor/lib/require.js', 
            {
            success: function(){ console.log('Successfully loaded require.js'); },
            error: function(){ console.log('Error loading require.js'); }
            });
        if(!one.ready())
            return pause();
    
        // Aloha settings
        Aloha = window.Aloha || {};
        Aloha.settings = Aloha.settings || {};
        Aloha.settings.baseUrl = '/alohaeditor/lib/';
        Aloha.settings.plugins = Aloha.settings.plugins || {};
        Aloha.settings.plugins.load = 'common/ui, common/format, common/link, common/table, common/list, common/block, common/undo, common/contenthandler, common/paste, common/commands, common/abbr';
    
        // Dynamically load aloha.js
        var two = IRLibLoader.load('/alohaeditor/lib/aloha.js',
            {
            success: function(){ console.log('Successfully loaded aloha.js'); },
            error: function(){ console.log('Error loading aloha.js'); }
            });
        if(!two.ready())
            return pause();
        },