Shim Twitter Bootstrap dla RequireJS
RequireJSdocs powiedzmy, że do obsługi starszych wersji IE, musisz skonfigurowaćenforceDefine: true
.
Jeśli więc chcesz obsługiwać Internet Explorer, przechwytywaj błędy ładowania i masz kod modułowy albo poprzez wywołania direct define (), albo shim config, zawsze ustaw executeDefine na wartość true. Przykład znajduje się w następnej sekcji.
UWAGA: Jeśli ustawisz enforceDefine: true i użyjesz data-main = "", aby załadować główny moduł JS, to ten główny moduł JS musi wywołać define () zamiast require (), aby załadować potrzebny kod. Główny moduł JS może nadal wywoływać require / requirejs, aby ustawić wartości konfiguracyjne, ale do ładowania modułów powinien użyć define ().
Ponieważ Twitter Bootstrap nie jest modułem AMD, muszę go przesunąć, aby działał. Tak to konfiguruję;
<script type="text/javascript">
var require = {
paths: {
"bootstrap": "../bootstrap",
"jquery": "../jquery-1.8.2"
},
shim: {
"bootstrap": ["jquery"]
},
enforceDefine: true
};
</script>
Później, gdy mój moduł chce bootstrap jako zależność, nadal otrzymuję komunikat o błędzie;
Error: No define call for bootstrap
http://requirejs.org/docs/errors.html#nodefine
Jeśli poprawnie zrozumiałem dokumenty,enforceDefine
powinien ignorować podkładki, ale tak nie jest.
Co ja tu robię źle?