문제

AMD용 RequireJS를 사용하는 프로젝트에 jQuery Mobile을 포함하려고 하는데 jQuery Mobile을 AMD 모듈로 로드하고 싶지 않습니다.이에 대한 아이디어는 애플리케이션별 로직에 AMD를 사용하지만 jQuery와 같은 외부 라이브러리 종속성은 스크립트 태그를 수동으로 정의함으로써 전역 범위로 가져오게 된다는 것입니다.

내가 겪고 있는 문제는 RequireJS 스크립트 태그로 인해 RequireJS가 익명 모듈을 정의하고 내가 이해할 수 없는 충돌을 일으키기 전에 jQuery 모바일용 스크립트 태그를 정의하는 것입니다.jQuery와 jQuery Mobile 코드를 모두 살펴보았는데 조건에 따라 define() 메소드가 존재하는 경우.RequireJS가 로드되기 전에 해당 태그를 포함하므로 해당 태그가 호출되어서는 안 됩니다. define().나는 이것을 중단점으로 다시 확인했지만 실제로는 그렇지 않았습니다.

jQuery Mobile을 포함하면 다음 오류가 발생합니다.

Error: Mismatched anonymous define() module: [object Object]

jQuery Mobile이 호출되지 않으면 어떻게 이런 일이 일어나는지 이해할 수 없습니다. define().내가 여기서 뭘 잘못하고 있는 걸까?이것이 jQuery Mobile의 새로운 조건부 AMD 지원에 관한 것입니까?

도움이 되었습니까?

해결책

확인하려면 jQuery 모바일의 내장 버전을 사용해야 하며, require.js 태그 앞에 이를 포함해야 합니다. jQuery 모바일은 jquery에 의존하므로 jquery가 스크립트 태그로 포함된다는 점에 유의하세요.

<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>
<script src="scripts/require.js" data-main="scripts/app"></script>

나는 그것이 효과가 있을 것으로 기대합니다.다음과 같은 스크립트가 있는 경우 표시되는 오류가 생성될 수 있습니다.

<script src="scripts/require.js" data-main="scripts/app"></script>
<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>

저는 이것이 jQuery 모바일이 아닌 RequireJS의 문제라고 생각합니다. RequireJS 1.1에서 수정하고 싶은 부분입니다.하지만 첫 번째 스크립트 태그 세트는 작동해야 합니다.

그렇지 않다면 앱의 JS 모듈이 jQuery 및 jQuery 모바일을 어떻게 사용하는지 자세히 아는 것이 흥미로울 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top