Чтобы получить максимальную отдачу от паттерна загрузчика YUI, вы должны играть по нескольким его правилам. Ваш пример выглядит почти совершенно правильно, насколько паттерны каталогов идут.
Если вы явно не включите исходные файлы javascript в свой документ, вам нужно будет уведомить загрузчик YUI о том, что модули существуют и какие у них зависимости. На данный момент есть ошибка в способе загрузки зависимостей для модуля, поэтому вы должны объявить зависимости в двух местах, в конфигурации загрузчика и в качестве постфикса к вашим операторам YUI.add.
Вы можете настроить загрузчик двумя способами: вы можете передать конфигурацию в качестве аргумента YUI () перед вызовом use для него, или вы можете назначить конфигурацию глобальной переменной YUI_config:
var cfg = {
/* other configs */
modules: {
'mod3-base': { requires: [ 'mod3-class1', 'mod3-class2' ] },
'mod3-class1': { /* */ },
'mod3-class2': { /* */ }
}
}
// You could pass the config in as an argument:
YUI(cfg).use('mod3-class2', function(Y) {
// your code
});
// Or set it as a magic global:
YUI_config = cfg; // will implicitly configure all YUI().use statements
Вам необходимо настроить загрузчик так, чтобы он знал, где найти файлы вашего модуля.
Как правило, загрузчик ожидает, что каждый модуль имеет свой собственный каталог, который содержит один или несколько файлов субмодулей и сцепленный файл «супермодулей». Например, глядя на модуль «База», мы видим следующую схему:
- BASE-base.js
- BASE-build.js
- BASE-pluginhost.js
- base.js: объединенная копия base-base, base-build и base-pluginhost
Каждый из этих четырех типов имеет три варианта: «сырой» исходный файл, «-min» и «-debug». В зависимости от того, как вы настроили ваш загрузчик, он может искать минимизированные варианты.