YUI3 Управление зависимостями - PullRequest
0 голосов
/ 02 декабря 2011

Я пытаюсь разработать веб-приложение, использующее инфраструктуру приложения YUI 3, и не могу понять, как на самом деле работает управление зависимостями.

Я хочу определить модуль, который я хочу использовать для другого места в другом файле. Вот код, который я использую для определения модуля в каком-то файле dir1 / home / home.js :

YUI.add('MyModule_Home',function(Y){ Y.namespace("mysite.home"); Y.mysite.home.SomeView = Y.base.create("SomeView", Y.View, { initializer : function() { // some logic goes here ... } // more functions go here .... } },'0.1',{ requires : ['base','node','app'] }); // <---- Dependency Specifications

В другом файле (index.js) для использования этого модуля я использую:

YUI( { groups: { grp1: { base: "/path/to/dir1/", modules: { MyModule_Home: { path: "home/home.js", requires: ['base', 'node', 'app'] // <------ Dependency Specifications } } } } })

Приведенный выше код работает, но я хотел бы знать, почему в обоих местах требуются избыточные спецификации зависимостей. Если я опускаю спецификацию зависимостей при загрузке модуля или при определении модуля, я получаю ошибки. Есть ли более лаконичный способ сделать это?

1 Ответ

4 голосов
/ 03 декабря 2011

Без предварительного указания зависимостей в объекте конфигурации, который вы передаете YUI(), он не может узнать, какие модули ему нужно получить, прежде чем он сможет загрузить ваш MyModule_Home модуль.Если вы не указали метаданные в объекте конфигурации, то должен пойти загрузить ваш модуль, прочитать требования и затем загрузить их.Это неоптимально с точки зрения производительности, но может быть работоспособным решением при разработке.

Просто обязательно вернитесь и исправьте это позже!

Команда YUI использует builder чтобы обернуть их модули в вызовы YUI.add, которые обрабатывают метаданные для этих модулей.Я считаю, что это ненужный тяжелый рабочий процесс, поэтому я поддерживаю метаданные в двух местах.По моему опыту, это не слишком большие затраты на обслуживание.

...