2012-03-27 5 views
5

어쩌면 내가 어딘가에 문서에서 이것을 놓쳤을 수도 있지만 여기에 간다. 모듈 관리를 담당하는 핵심 컨트롤러가 있습니다. 지금까지 약 20 개의 모듈이 있으며 코어에서로드되도록 쉽게 구성 할 수 있기를 원합니다. 이것은 큰 배열이나 많은 호출이 필요하다는 것을 의미합니다. 리터럴 객체에 모듈 목록을 만든 다음 모듈이 그 모듈로부터 종속성을로드하도록 허용하는 것이 좋습니까?RequireJS - 중앙에서 모듈 관리

Config.js

modules = [ 
    'moduleA', 
    'moduleB', 
    'moduleC' 
]; 

Core.JS

define(
    ['config'], 
    function(config) { 
     // Somewhere in here I parse the list and require() each one ? 
     return { 
      startAll : function() { 
       console.log('starting all modules.'); 

       // Then call a method common to all 'modules' in the list above. 
      } 
     } 
    }; 
    } 
); 

난에 새로 온 사람으로서이 좋은 생각 인 경우 잘 모르겠어요 : 여기에 내가 무엇을 의미하는지의 예 RequireJS하지만 한 곳에서로드되는 모듈을 구성 할 수 있다는 생각을 좋아합니다. 제 경우에는 모듈별로 UI 위젯을 더 구체적으로 말합니다.

답변

3

"패키지"패턴의 정렬을 사용하여 동일한 문제를 해결했습니다. 기본적으로 패키지는 위젯을위한 외관 역할을합니다. 당신에게 내가 무슨 말을 더 잘 아이디어를 제공하려면 다음을 고려하십시오

widgets.js : 버튼 모듈 그냥 함수를 반환이 경우

define(['./widgets/button', ...], function(button) { 
    return { 
     button: button, // expose the widgets here 
     ... 
    } 
}); 

. 케이스에 맞게 파사드를 조정해야 할 수도 있습니다.

이 구성표는 외관을 가져 오기 만하면 위젯을 참조 할 수 있습니다. 제 경우에는 이것은 매우 유익했습니다. 나는 다른 곳에서도 모듈을 포장하고 사용하기 쉽게하기 위해 같은 생각을 사용한다.

이렇게하면 RequireJS의 이점 중 일부를 잃게됩니다. 어떤 순간이 필요하지 않더라도 모든 위젯을로드합니다. 물론이 경우에는 외관을 업데이트 할 수 있지만 추가 작업 ...

+0

나는 당신이 말하는 것을보고 있습니다. 기본적으로로드 된 종속성 목록을 빌드하고 다른 모듈에로드합니까? 아주 멋지다. – backdesk

+0

예. 나는 이것이 귀하의 경우에 효과가 있는지 모르겠습니다. 그래도 꽤 유용하다고 생각했습니다. –

관련 문제