나는 (우리 회사를 포함하는) 웹 사이트 세계화 프로젝트를 진행중에있어 고객에게 가정/원산지 사이트에 스크립트 태그를 삽입하도록 요청하고 있습니다. 스크립트 태그는 고객의 글로벌 지원을 위해 필요하며 솔루션의 일부는 특정 최종 사용자 기준에 따라 트리거되는 UI를 구현합니다.번들로 묶인 jQuery로 제 3 자 자바 스크립트 라이브러리 관리하기
UI는 클라이언트가 페이지에 삽입 할 것으로 기대할 수없는 jQuery의 도움을 받아 만들어지며 버전 불일치는 해결하기가 어렵지 않습니다. 따라서 제 3 자 라이브러리는 자체 jQuery 버전을 다운로드합니다. 충돌을 피하기 위해 이름 공간이 다르기는하지만 말입니다.
그러나 이러한 메커니즘을 사용하면 jQuery의 모든 인스턴스 이름을 다른 jQuery 인스턴스 (있는 경우)와의 이름 충돌을 피하는 데 필요한 이름으로 바꾸고 우리의 mangled jQuery (아래 예에서는 MY_Query)를 매우 어렵게 만듭니다. 업그레이드는 물론 관리도 할 수 있습니다. 예를
jQuery = window.jQuery = window.$ = function(selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context);
},
.
.
.
jQuery.fn = jQuery.prototype = ...
를 들어
우리와 클라이언트 모두가 사이트에 jQuery를 단일 버전이 것, 이상적으로
MY_JQuery = window.MY_JQuery = window.MY_Q = function(selector, context) {
// The MY_JQuery object is actually just the init constructor 'enhanced'
return new MY_JQuery.fn.init(selector, context);
},
.
.
.
MP_JQuery.fn = MP_JQuery.prototype = ...
이되고, 우리 모두는 그것을 사용하는 것이 우리의 이점. 그러나 이는 jQuery를 업그레이드 할 때 양쪽에서 무거운 테스트가 필요하다는 것을 의미합니다 (맹 글링 된 jQuery 버전이 포함되어 있음). 그리고 원하는 모든 플러그인은 클라이언트가 사이트에 적절한 스크립트 태그를 추가하여 양 당사자간에 정치적 논쟁을 불러 일으킬 것을 요구합니다. 어떤 버전이 승리하는지.
그래서 클라이언트 사이트에서 jQuery의 모든 인스턴스 이름을 위에서 언급 한 제약 조건과 MY_Query로 바꾸지 않고 플러그인 (플러그인 포함)을 관리 할 수 있습니까?
는 왜 구글 코드 JQuery와 라이브러리에 연결하지, 당신이 모두 같은 버전이 것 결코 그들을 업그레이드 단지 생각을 필요가 없습니다. – brett
클라이언트가 그렇게하도록 설득하기가 어렵습니다. 또한 클라이언트가이 제안을 거부하는 법적 이유가있을 수 있습니다. –