Оптимизатор Require.js + R.js игнорирует прокладку

R.js не загружает мою оболочку, поэтому jQuery загружается раньше, чем tinyMCE, а крошечный инициализируется до того, как он загрузится. Как я могу заставить прокладку работать?:

сборка-js.js:

var requirejs = require('requirejs');
var config = {
    mainConfigFile: '../js/main.js',
    include: [],
    name: 'main',
    out: '../js/build/build.js',
};

    requirejs.optimize(config, function (buildResponse) {
    var contents = fs.readFileSync(config.out, 'utf8');
});

основной.js:

require.config({
    paths: {
        jQuery: 'common/libs/jquery/jquery-min',
        TinyMCE: 'common/libs/tinyMCE/tiny_mce',
    },
    shim: {
        'jQuery': {
            deps:['TinyMCE'],
            exports: '$',
        },
       'jQueryUi': {
            deps: ['jQuery']
        },
        'jQuerySelectmenu': {
            deps: ['jQuery', 'jQueryUi']
        },
        'jQueryAutosize': {
            depts: ['jQuery']
        },
        'Underscore': {
            exports: '_'
        },
        'Backbone': {
            deps: ['Underscore', 'jQuery'],
            exports: 'Backbone'
        }
    }
});

require(['common/src/app'], function (App) {
    App.initialize();
});

person user784756    schedule 13.07.2012    source источник
comment
require.config() не анализируется как r.js. Вы должны создать файл конфигурации для r.js. Посмотрите здесь: stackoverflow.com/questions/11323414/   -  person Marcelo De Zen    schedule 14.07.2012
comment
Не по делу, но я только что обнаружил, что вы можете использовать lodash вместо подчеркивания и потерять прокладку подчеркивания .   -  person Brian M. Hunt    schedule 29.07.2012
comment
Вы действительно хотите, чтобы крошечный загружался перед jquery?   -  person Marcelo De Zen    schedule 24.08.2012
comment
Старый, и, возможно, не проблема, но для вашей прокладки jQueryAutosize у вас есть отделы (вместо отложений).   -  person ken    schedule 05.10.2012


Ответы (2)


Эта проблема уже исправлена ​​в r.js 2.1.11.

просто место

wrapShim: true в конфигурации сборки.

проблема с github

пример конфигурации

person Randy Garces    schedule 07.04.2014

Недавно я столкнулся с некоторыми подобными проблемами, которые меня немного озадачили. Я не знаком с кодом TinyMCE, но вижу, что вы его не замаскировали.

Прокладки (как правило) не могут зависеть от библиотек стилей AMD. Не уверен, попадает ли TinyMCE в категорию стилей модулей AMD или нет, но если это так... у вас проблемы. Если это не так, вам нужно проложить и его.

https://github.com/jrburke/requirejs/wiki/ОбновлениедоRequireJS-2.0#wiki-shim

Важное предостережение для конфигурации прокладки:

Используйте только другие модули-оболочки в качестве зависимостей для скриптов с оболочкой или библиотеки AMD, которые не имеют зависимостей, и вызовите функцию define() после того, как они также создадут глобальную переменную (например, jQuery или lodash). В противном случае, если вы используете модуль AMD в качестве зависимости для модуля конфигурации оболочки, после сборки этот модуль AMD не может быть оценен до тех пор, пока не будет выполнен код оболочки в сборке, и произойдет ошибка. Окончательное исправление состоит в том, чтобы обновить весь код с прокладками, чтобы он имел необязательные вызовы AMD define().

person Ethan J. Brown    schedule 20.09.2012