2013-08-21 2 views
2

requirejs를 사용하여 jQuery와 몇 가지 플러그인을로드하려고합니다. config 객체 "paths"및 "shim"속성 설정이 작동합니다. 그래서 TypeScript 내에서 jQuery를 요구하고 amd-dependency를 통해 플러그인을로드 할 수 있습니다.requirejs를 통해 모듈을 자동으로로드하십시오.

이제 jQuery 및 플러그인을로드하는 데 필요한 코드를 최소화하고 싶습니다. 어떻게 든 requirejs에게 "jQuery가 필요할 때마다 path 속성에 주어진 경로를 통해로드하고 다음 플러그인을로드하십시오."라고 말할 수 있습니까?

기본적으로 이것은 jQuery 만 요구할 수 있습니다. 모든 플러그인도 자동으로로드됩니다. 당신이 발견으로

답변

6

shim 설정은 전에 모듈을로드되는 것을 정의 할 수 있습니다,하지만 모듈 후 뭔가 를로드하기위한 대응하는 기능이 없다. 그러나 r.js 최적화에 대한 전반적인 접근 방식을 사용하면로드 시간을 절약하기 위해 모든 파일을 하나의 파일에 묶을 수 있습니다. requirejs jquery doc page에서 연결된 optimization section of shim example을 참조하십시오. 이 상단에 추가 할 수 있습니다

다른 해킹은 다른로드하는 그냥 자신의 모듈을 정의하는 것입니다 :

require.config({ 
    shim: { 
     jquery: { exports: ['jQuery', '$'] }, 
     plugin1: { deps: ['jquery'] }, 
     plugin2: { deps: ['jquery'] } 
    } 
}); 

define('jquerywithplugins', ['jquery', 'plugin1', 'plugin2'], function(jq) { 
    return jq; 
}); 

그리고 나중에 대신 require(['jquery'])을 당신이 할 require(['jquerywithplugins'])

+0

로드 jQuery를 더한 플러그인 공장. 그러나, TypeScript'import $ = require ("jquerywithplugins")'로 코딩 할 때,'$'는 jQuery로 알려져 있지 않습니다. 그래서 인텔리 센스는 효과가 없습니다. – mgs

+0

** 수정 ** 위의 가져 오기 후에'declare var $ : JQueryStatic; '을 코딩 할 수 있습니다. 그러면 인텔리 센스가 작동합니다. – mgs

관련 문제