2014-04-16 6 views
0

requireJS config.json과 내 main.js과 같은 소스 파일을 전달하고 모든 종속성 목록을 수신하고 싶습니다.요구 사항은 종속성 API를 제공합니까?

이것은 아마도 r.js 최적화 응용 프로그램의 일부일 수 있지만 내부 구조에 대한 문서는 찾을 수 없습니다.

요구 사항은 종속성 목록을 생성하는 데 이와 같은 API를 제공합니까?

답변

0

내가 아는 API가 없습니다. 이 같은 빌드 구성 r.js (최적화)를 실행하는 경우에는 :

({ 
    baseUrl: ..., 
    dir: ..., 
    mainConfigFile: ".../config.js", 
    findNestedDependencies: true, 
    name: "main", 
    optimize: "none" 
}) 

는 당신이 최적화 된 빌드 ( dir의 값)을 저장하기 위해 지정한 디렉토리에 build.txt 파일을 얻을 수 있습니다. 이 파일의 일반적인 형식은 다음과 같습니다이 출력 파일 output-file1 모듈 AB이 포함되어 있음을 알려줍니다

<output-file1> 
---------------- 
<module A> 
<module B> 

<output-file2> 
---------------- 
<module C> 
<module D> 

, output-file2 모듈을 CD이 포함되어 있습니다.

위에서 제안한 구성을 사용하면 기본 모듈의 build.txt 파일에 하나의 출력 파일 만 나열되어야하며 그 아래에 나열된 모듈 목록은 해당 모듈이 종속되어있는 모든 모듈입니다.

위의 구성에서 내가 걱정하는 것이 종속성 만 있다면 시간을 절약 할 수 있기 때문에 optimize: "none"으로 설정했습니다. 실제 빌드에서는 r.js이 코드를 축소하기 위해 uglifyjs를 사용하도록하고 싶을 것입니다. 또한 findNestedDependencies: true은 코드 중간에 require에 대한 동적 호출을 찾기 위해 r.js에게 알려야합니다. 그리고 th이 큰 경고를 불러옵니다. 이있는 경우 :

if (blah) 
    require(["foo"], function (foo) {...}); 

findNestedDependencies: true 모듈 foo에 대한 종속성이 있음을 감지 할 수있을 것입니다.

var module_name = obj[key]; 
require([module_name], function (module) {...}); 

r.js이 코드를 실행해야합니다 (심지어 다음 발견 할 수있는 코드를 실행에 제한이) 것,이 코드가로드되는 것을 모듈 알고 : 그러나,이 처리하는 r.js에 대한 방법이 없습니다.

관련 문제