2012-11-13 8 views
5

현재 프로젝트 환경 (예 : 개발 또는 생산)에 따라 다른 파일을로드하는 기능이 있습니까? 나는 의미심장하게 전체 파일을로드하는 것을 돕는다. 다중 버전 로딩에 대해 읽었지만 다중 버전 화는 파일 버전을 지정해야한다는 것을 의미합니다.
예를 들어 모듈에 module.js 파일이 있습니다. 이 파일에서 나는 jQuery를로드해야합니다RequireJS : 환경에 따라 다른 파일로드

require(['jquery]); 

하지만 축소 된 및 jQuery를의 전체 버전을하고 난 다른 파일을로드 할 수 있습니다. 나는 config에서 이와 비슷한 것을 생각하고있다.

require.config({ 
     paths: { 
      'jquery' : function(){ 
       if(MODE == 'DEV'){ 
        return 'jquery'; 
       }else{ 
        return 'jquery.min' 
       } 
      } 
     } 
    }); 

또는 어쩌면 비슷한 것이다.

답변

1

누군가 경우 아직도 그 작업을 수행하는 방법을 알고 싶어 :

require.config({ 
    paths: { 
     'jquery' : (function(){ 
      if(MODE == 'DEV'){ 
       return 'jquery'; 
      }else{ 
       return 'jquery.min' 
      } 
     })() 
    } 
}); 

이 기능은 익명 함수를 호출 자체입니다. 정의 장소에서 즉시 호출합니다.

2

the r.js optimizer을 사용하는 경우이 프로세스를 수행 할 수 있습니다. scripts 폴더에서 모든 모듈, 라이브러리 및 기타 코드는 개발 목적으로 압축 해제 된 상태로 둡니다. 나는 종종이

scripts/ 
    lib/ 
    modules/ 

같은 것을 할 때 배포 할 준비하는 build.js를 만들고 다양한 옵션을 구성 할 수 있습니다. 이 옵션 can be found in this example configuration의 각

({ 
    baseUrl: '../scripts', 
    dir: '../scripts.min', 

    paths: { 
     'jquery': 'lib/jquery' 
    }, 

    removeCombined: true, 

    optimize: 'uglify', 
    preserveLicenseComments: false, 
    uglify: { 
     max_line_length: 3500, 
     no_copyright: true 
    }, 

    modules: [ 
     { 
      name: 'module1' 
     }, 
     { 
      name: 'module2', 
      exclude: ['jquery'] 
     } 
    ] 
}) 

더 상세하지만 dir에 주목하고 스크립트가 끝나는 곳 removeCombined

dir 분명하다 : 내가 사용하고 유사한 설정의 예를주지 쪽으로. 내 스크립트에 인접한 접미어 .min 또는 비슷한 폴더를 만드는 경향이 있습니다. 당신이 생산에 갈 준비가되면, 단순히 기본적으로 scripts.min

require.config({ 
    baseUrl: '/scripts.min' // Now the site will load scripts from the optimised folder 

    // Other options 
}) 

에이 설정 baseUrl을 필요로 변경, r.js 관계없이 이미 다른 JS로 결합되었는지 여부를 통해 모든 스크립트를 복사합니다 파일 또는 아닙니다. removeCombinedtrue으로 설정하면 scripts.min 폴더에 프로덕션에 필요한 파일 만 포함됩니다.

관련 문제