2014-03-26 5 views
1

이것이 가능한지 확실하지 않은 경우 paths 구성의 와일드 카드 *을 사용해 보았습니다.RequireJS가 특정 모듈의 하위 디렉토리를 들여다 보도록하려면 어떻게해야합니까?

서브 디렉토리 libs/jquery/src에서 jquery/*이라는 요청 모듈을로드하려고하지만 다른 파일은 baseUrl과 관련하여로드해야합니다. 이것이 제가 시도한 것입니다 :

({ 
    baseUrl: ".", 
    name: "main", 
    out: "main.build.js", 
    paths: { 
     "jquery/*": "libs/jquery/src" 
    } 
}) 

이 방법이 가능합니까?

예 :

require([ 
    "jquery/ajax.js", 
    "view/table.js" 
], function(tableView){ 

    var t = new tableView; 

    return { 
     tableView: tableView 
    }; 

}); 

./view/table.js에서 ./libs/jquery/src/ajax.js에서 jquery/ajax.jsview/table.js을로드합니다.

편집

나는이 paths 설정과 시도 :이 오류가 두 경우 모두

paths: { 
    "jquery": "libs/jquery/src" 
} 

: Error: Error: ENOENT, no such file or directory 'Development/rjs/jquery/ajax.js' 예상 경로가에있다 Development/rjs/libs/jquery/src/ajax.js

답변

0

봐하는 동안 실제 패턴 일치는 없습니다. 그러나 RequireJS 당신이 할 수 있도록 다른 무언가로 대체 경로의 시작을 일치시킬 수 있습니다 :이

paths: { 
    "jquery": "libs/jquery/src" 
} 

을, 당신이 다음 경우 :

require(["jquery/foo"], ...); 

RequireJS가 libs/jquery/src/foo.js을 추구합니다. 물론 이것은 jQuery 전체를 jquery으로로드하려는 경우에 문제가됩니다.

종속성에 확장을 넣으면 작동하지 않습니다. 모듈 이름에서 .js을 제거해야합니다. 그렇지 않으면 RequireJS는 이름을 리터럴 경로로 처리하며 paths을 통과하지 않습니다.

+0

처음에는 시도했지만, 불행히도 저에게는 효과가 없습니다. 오류 : 오류 : ENOENT, 해당 파일이나 디렉토리가 없습니다. 'Development/rjs/jquery/ajax.js'' 내 baseUrl이'Development/rjs' 인 곳 –

+0

어떤 버전의 RequireJS를 사용하고 있습니까? 최신 2.1.11입니다. – Louis

+0

r.js : 2.1.11, 요구 사항 : 2.1.11, UglifyJS2 : 2.4.12, UglifyJS : 1.3.4 –