2014-01-17 5 views
0

polyfill 스크립트를 AMD 모듈로 랩핑하고 Modernizr과 RequireJS를 사용하여 조건부로로드하는 방법은 무엇입니까?RequireJS : 조건부로 Modernifr을 사용하여 Polyfill로드

(나는 내 ​​질문에 초안을 작성하는 동안 그것을 알아 냈다 -. 같은 일을하려고 다른 사람에 대한 게시 답) 나는로드하는 데 필요한 polyfill 입력 자리를 지원하지 않는 브라우저를위한 jquery-placeholder했다

답변

0

. 그것은 AMD 지원을 즉시 제공하지 않습니다.

는 우선이 같은 AMD 모듈로 포장 : 다음 main.js에 내가 모더 나이저를 사용

define(['jquery'], function ($) { 
    (function(window, document, $) { 
    ... polyfill ... 
    }(this, document, jQuery)); 
}); 

조건부 require() polyfill 스크립트 : 귀하의 예제에서

require(['jquery', 'modernizr'], function ($, Modernizr) { 
    if (!Modernizr.input.placeholder) { 
    require(['jquery', 'placeholder'], function ($) { 
     $('#input').placeholder(); 
    }); 
    } 
}); 
+3

이 두 번 jQuery를 필요로하고 . jQuery 플레이스 홀더가 jQuery가 필요한 유일한 이유라면, 첫 번째 단계에서는 jQuery가 아닌 Modernizr 만 필요합니다. 또한 모듈 래퍼 내부에서 공급 업체 소스 코드를 복사하는 대신 [RequireJS shim] (http://requirejs.org/docs/api.html#config-shim)을 사용하는 것이 공급 업체 코드를 그대로두고 더 나은 방법으로 간주됩니다. 언제든지 그것을 대체 할 수 있습니다. –