Мы можем использовать совместимые с AMD версии BackboneJS и UnderscoreJS.
Я просмотрел совместимую с AMD библиотеку для обоих (https://github.com/amdjs/) и ниже приведен соответствующий код, чтобы сделать их совместимыми с AMD.
BackboneJS (АМД);
else if (typeof define === 'function' && define.amd) {
// AMD
define(['underscore', 'jquery', 'exports'], function(_, $, exports) {
// Export global even in AMD case in case this script is loaded with
// others that may still expect a global Backbone.
root.Backbone = factory(root, exports, _, $);
});
UnderscoreJS (АМД);
// AMD define happens at the end for compatibility with AMD loaders
// that don't enforce next-turn semantics on modules.
if (typeof define === 'function' && define.amd) {
define('underscore', function() {
return _;
});
}
Теперь, чтобы использовать эти совместимые с AMD библиотеки в нашем коде, мы говорим;
requirejs.config({
enforceDefine: true,
paths: {
"jquery": "libs/jquery-1.8.3",
"underscore": "libs/underscore-amd",
"backbone": "libs/backbone-amd"
}
});
Теперь я прочитал, что имя для магистрального модуля может быть любым, но имя для подчеркивания должно быть «подчеркивание», а для подчеркивания важна заглавная буква.
Почему разница основана на том, как определена библиотека?