2014-02-19 4 views
1

RequireJs가 CommonJS 모듈을로드하는 방법을 알아 보려면 http://requirejs.org/docs/api.html#packages을 따르지 만 얻을 수는 없습니다.commonjs 패키지를 requirejs로로드하는 방법은 무엇입니까?

아래 파일이 있습니다.

exports.bar = '1234'; 
exports.xyz = function noop() {}; 

main.js :

푸/ main.js require.js

foo는/foo.js 내용 foo.js

requirejs.config({ 
    packages: [{name:'foo', main: 'foo'}] 
}); 

require(['foo'], function(foo) { 
    console.log(foo.bar); 
}); 

그것은 말했다 수 정의되지 않은 막대 읽기

답변

0

문서의 중요한 부분을 놓쳤습니다. 당신이 당신의 질문에 링크 tation :

를 패키지가 CommonJS 디렉토리 레이아웃을 가질 수 있지만, 모듈 자체가 RequireJS가을 이해할 수있는 모듈 형식이어야합니다. 규칙 예외 : r.js 노드 어댑터를 사용하는 경우 모듈은 일반적인 CommonJS 모듈 형식이 될 수 있습니다. 일반적인 CommonJS 모듈을 RequireJS가 사용하는 비동기 모듈 형식으로 변환해야하는 경우 CommonJS 변환기 도구를 사용할 수 있습니다.

(강조했다.)이 RequireJS가 이해하는 것이 아닙니다

:

exports.bar = '1234'; 
exports.xyz = function noop() {}; 

그것은 할 것 :

define(function(require, exports, module) { 
    exports.bar = '1234'; 
    exports.xyz = function noop() {}; 
}); 

어느 쪽이 변환을 수동으로 또는 r.js -convert을 사용하면 전환을 수행 할 수 있습니다.

관련 문제