Shim Twitter Bootstrap для RequireJS
The RequireJSдокументы скажем, что для поддержки более старых версий IE необходимо настроить.enforceDefine: true
Поэтому, если вы хотите поддерживать Internet Explorer, отлавливать ошибки загрузки и иметь модульный код либо с помощью прямых define (), либо с помощью конфигурации shim, всегда устанавливайте значение empceDefine равным true. Смотрите следующий раздел для примера.
ПРИМЕЧАНИЕ. Если вы установили EnforceDefine: true и используете data-main = "" чтобы загрузить основной JS-модуль, этот основной JS-модуль должен вызвать define () вместо require () для загрузки необходимого кода. Основной модуль JS все еще может вызывать require / requirejs для установки значений конфигурации, но для загрузки модулей он должен использовать define ().
Так как Twitter Bootstrap не являетсямодуль AMD, мне нужно подкрутить его, чтобы он работал. Вот как я это настраиваю;
var require = {
paths: {
"bootstrap": "../bootstrap",
"jquery": "../jquery-1.8.2"
},
shim: {
"bootstrap": ["jquery"]
},
enforceDefine: true
};
Позже, когда мой модуль хочет загрузить загрузчик как зависимость, я все равно получаю сообщение об ошибке;
Error: No define call for bootstrap
http://requirejs.org/docs/errors.html#nodefine
Если я'вы правильно поняли документы,enforceDefine
следует игнорировать прокладки, но этонет.
Что я здесь не так делаю?