Проблема с загрузкой RequireJS (с пакетами)
Вопрос
Я использую RequireJS 2.0.6.И иногда у меня возникают проблемы с загрузкой одной из моих библиотек (amplifyjs).
Проект:
libs/
amplify.js
handlebars.js
jquery.js
require.js
packages/
core/
main.js
index.html
main.js
Мой main.js:
require.config({
paths: {
'jquery': '../libs/jquery',
'amplify': '../libs/amplify',
'handlebars': '../libs/handlebars'
},
shim: {
'jquery': {
exports: '$'
},
'amplify': {
deps: ['jquery'],
exports: 'amplify'
},
'handlebars': {
exports: 'handlebars'
}
},
packages: ['core'],
baseUrl: './packages/'
});
require(['jquery', 'amplify', 'handlebars', 'core'], function() {
});
Индекс.html:
<script type="text/javascript" data-main="main" src="libs/require.js"></script>
В 75% случаев это работает, но иногда я получаю эту ошибку:
GET http://localhost:8888/aa/test/packages/libs/amplify.js 404 (Not Found)
Uncaught Error: Script error
http://requirejs.org/docs/errors.html#scripterror
Путь неправильный!Но я не могу понять, почему это происходит?И почему только иногда?
(Я почти уверен, что это должно что-то делать с пакетом, но понятия не имею, почему это происходит)
Решение
Я понял еще один способ сделать это, и он работает!
require.config({
paths: {
libs: '../libs'
},
packages: ['core'],
shim: {
'libs/amplify': {
deps: ['libs/jquery'],
exports: 'amplify'
},
'libs/handlebars': {
deps: ['libs/jquery'],
exports: 'handlebars'
},
'core': {
deps: ['libs/amplify', 'libs/handlebars']
}
}
});
. Другие советы
(Я уверен, что это должно что -то сделать с пакетом, но я понятия не имею, почему это делает это)
Слово packages
относится к стандарту CommonJS, поскольку requirejs поддерживает загрузку модулей, находящихся в ОбщиеJS-пакеты Структура каталогов и сами модули должны быть в формате модуля, понятном RequireJS.