2013-07-29 4 views
5

최적화 된 RequireJS/r.js 번들 내에서 개별 모듈을 가져올 수 있습니까? RequireJS - r.js 최적화 번들 내에서 모듈 가져 오기

내가 두 개의 구성 요소로 헤어 졌 자바 스크립트 프로젝트가 - '에 MyLibrary'와 '에서는 MyApplication'

MyLibrary를 두 개의 별도의 모듈로 구성을, 'MyModule1'와 'MyModule2'.

개발 모드에서 MyApplication의 일반적인 define ([ 'MyLibrary/MyModule1'], function() {}) 구문을 사용하여 RequireJS를 사용하여 각 모듈을 가져올 수 있습니다. 직접 더 이상 내부 모듈을 참조하는 방법이있을 나타나지 않습니다 -

그러나 한 번이 더 이상 가능 보인다, r.js 통해 MyLibrary를 실행하지?

나는 내 응용 프로그램이 직접이 참조 할 수 있도록 표시되지 않습니다 내에서, 그러나 RequireJS를 각 모듈에 대한() 블록이 정의되어 컴파일/최적화 된 소스에서 볼 수 있습니다.

가능합니까? 또는이 기능을 사용하려면 전체 응용 프로그램을 단일 파일로 묶어야합니다.

편집 : RequireJS 최적화 단계가 Play 프레임 워크에서 수행되고 있으며 빌드 구성을 최소한으로 제어 할 수 있습니다.

({appDir: "javascripts", 
[info]   baseUrl: ".", 
[info]   dir:"javascripts-min", mainConfigFile: "javascripts/build.js", modules:   [{name: "main"}]}) 
+0

r.js 빌드 구성 및 기타 관련 코드를 게시 할 수 있습니까? – explunit

+0

빌드 파일은 내가 사용하고있는 프레임 워크 (play 2.1)에 의해 즉석에서 생성되며 너무 많지 않습니다. 어쨌든 추가하겠습니다. –

답변

2

라이브러리에서 모듈을 사용하려면이 모듈을 찾는 방법을 RequireJS에 지시해야합니다. main.js에서이 같은 뭔가를해야합니다

require.config({ 
     // ... 
     paths: { 
      // ... 
      'MyLibraryBundleName': 'dist/MyLibraryFile', 
      // ... 
     }, 
     // ... 
     bundles: { 
      //... 
      'MyLibraryBundleName': ['MyLibrary/MyModule1', 'MyLibrary/MyModule2'], 
      //... 
     } 
    }); 
에서는 MyApplication이 같은 모듈을 참조하는

:

define(['MyLibrary/MyModule1'],function(){}) 

... 당신이 언급대로, RequireJS는 MyLibrary를/MyModule1 '를 찾습니다 '번들 섹션에서 찾은 다음'path '섹션에서로드 될 실제 파일 인 dist/MyLibraryFile을 찾습니다.

관련 문제