2011-09-05 3 views
7

내가 지금 시험
RequireJs에서 최적화 프로그램에 해시 출력 파일 이름을 생성하도록 지시하려면 어떻게해야합니까?

sudo /usr/local/bin/node /tmp/r.j/r.js -o name=main out=test.js baseUrl=. 

같은 최적화 프로그램을 실행, 내가 콘텐츠의 해시로 출력 최적화를 파일 이름을 어떻게 알 수 있습니까 (분명 최대 만료 설정) 다음에 종속성의 이름을 변경 관련 전화가 필요합니까?

예제 상황은 내가 하나의 마스터 파일에 모두 필요로 전화를 넣어 계획입니다 Miller Medeiros’s suggestion을 바탕으로이

require({ 
     baseUrl: '{{ STATIC_URL }}js', 
     paths: { 
      jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min', 
      jqueryui: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min' 
     } 
    }, ['order!jquery','order!jqueryui','order!main']); 

requirejs이 13KUJAW78M.js

같은 것을 잡아 당겨해야

같은 것입니다. 이것은 또한 모든 호출이 또한 최적화 될 필요가 있음을 의미합니다.

예컨대

switch(document.location.pathName){ 
     case '/foo': 
      require(['sections/foo/main']); 
      break; 
     case '/foo/bar': 
      require(['sections/foo/main', 'core/bar']); 
      break; 
     default: 
      require('sections/home'); 
    } 

요구 ([ '부/foo에/메인']);

은 해시 파일에 맞게 최적화되어야합니다.

누군가 도움을 줄 수 있습니까?

답변

4

RequireJS 최적화 프로그램에는이 옵션이 없지만 파일의 이름을 바꿀 수 있으며 paths config을 사용하여 이름이 바뀐 파일에 별칭을 설정할 수 있습니다. 자세한 내용은 을 참조하십시오.

예를 들어 파일 이름을 'sections/foo/main.123QWERT.js'로 변경하면 'sections/home.4567ASDFG.js', 'core/bar.0284ZXCV.js' 다만 다음과 같이 config (설정) 경로를 추가 :

require.config({ 
    paths : { 
    //alias to new files without JS extension 
    'core/bar': 'core/bar.0284ZXCV', 
    'sections/home' : 'sections/home.4567ASDFG', 
    'sections/foo/main' : 'sections/foo/main.123QWERT' 
    } 
}); 

경로의 설정은 어쩌면 바로 HTML에 대한 설정을 유지, 캐시되지 않습니다 파일에 있어야합니다.

+0

옵티마이 저가 해시를 추가합니까, 아니면 파일 이름을 바꾸기 위해 일부 스크립트 + 정규식 마술을해야합니까? –

+0

기본 또한 다른 파일들과 함께 압축 될 수도 있고 별도로 존재해야 할 수도 있습니다. –

+0

RequireJS optimizer는 해시를 추가하지 않을 것입니다. 수동으로 생성하거나 (또는 ​​내가 모르는 일부 도구를 사용하여) 경로 설정을 전달해야합니다. 모듈에 "core/bar"가 필요할 때 대신 "core/bar.HASH_VALUE.js"파일을로드합니다. 설정에 따라 많은 파일에 해시를 생성 할 필요가 없습니다. main은 다른 파일과 함께 압축 될 수 있습니다. –

관련 문제