Доброго времени суток,
уважаемые.
Как наилучшим способом настроить Require.js?
Читал
документацию к requirejs .
Различные статьи/ответы по этой библиотеке (
пример 1,
пример 2, и т.д.).
Все работает нормально когда используешь 1-2 библиотеки (jQuery, Backbone, ...)
Однако, когда я загружаю около 10 - 20 библиотек и скриптов (jQuery плагины и прочие прелести), начинает работать некорректно.
Часто показывает, что не может подгрузить файл (конфиг не срабатывает и файлы пытается тянуть не учитывая path)
Firefox вообще отказывается работать с конфигурацией.
index.html
<!DOCTYPE html>
<html>
<head>
<script data-main="js/main" src="/js/require.js"></script>
</head>
<body>
<!-- so much code -->
</body>
</html>
/js/main.js
requirejs.config({
baseUrl: 'js',
paths: {
'jquery': '/assets/plugins/jquery/dist/jquery.min',
'inspinia': '/assets/js/inspinia',
'jquery-ui': '/assets/plugins/jquery-ui/jquery-ui.min',
'bootstrap': '/assets/plugins/bootstrap/dist/js/bootstrap.min',
'underscore': '/assets/plugins/underscore/underscore-min',
'backbone': '/assets/plugins/backbone/backbone',
'lodash': '/assets/plugins/lodash/lodash.min',
'text': '/assets/plugins/requirejs-plugins/lib/text',
'pace': '/assets/plugins/pace/pace.min',
'socketio': '/assets/plugins/socket.io-client/socket.io',
'switchery': '/assets/plugins/switchery/dist/switchery.min',
'metis-menu': '/assets/plugins/metisMenu/dist/metisMenu.min',
'slimscroll': '/assets/plugins/slimscroll/jquery.slimscroll.min',
'gritter': '/assets/plugins/gritter/js/jquery.gritter.min',
'sparkline': '/assets/js/plugins/sparkline/jquery.sparkline.min',
'toastr': '/assets/plugins/toastr/toastr.min'
},
shim: {
'jquery':{
exports: 'jQuery'
},
'socketio': {
exports: 'io'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'underscore': {
exports: '_'
},
'bootstrap': ['jquery'],
'metis-menu': ['jquery'],
'slimscroll': ['jquery'],
'gritter': ['jquery'],
'inspinia': [],
'app': []
}
});
requirejs(['test']);
requirejs(['app'], function(App){
App.initialize();
});
/js/test.js
'use strict';
define([
'jquery',
'lodash',
'backbone',
'socketio',
'jquery-ui',
'metis-menu',
'slimscroll',
'toastr'
], function($, _, Backbone, SocketIo){
var io = SocketIo('http://'+window.location.host+'/');
$(document).ready(function () {
// ... so much code
});
});
Что я делаю не так? Как добиться стабильности?