필자는 몇 개의 전역 변수 (jQuery + 플러그인, 생성자 함수 등)의 빌드 된 라이브러리 (연결, 축소 및 require.js 이전에 포함)를 보유하고 있습니다. 이 라이브러리는 앱이 위에 빌드 된 기반으로 사용되며, 종속성은 가정됩니다. 라이브러리 뒤에 앱 스크립트를 포함하면 문제없이 jQuery와 생성자를 자유롭게 사용할 수 있습니다.기존 전역 변수가있는 requirejs
큰 응용 프로그램의 경우이 내장 라이브러리를 사용하면서 requirejs (응용 프로그램 내 다른 모듈을 관리하기 위해)를 사용할 것을 고려하고 있습니다. jQuery와 같은 기존 전역을 필요로하는 종속성 목록에 어떻게 추가 할 수 있습니까?
<script src="pathto/lib.js" type="text/javascript"></script>
<script src="require.js" data-main="../js/app" type="text/javascript"></script>
requirejs.config({
shim: {
'jquery': {
exports: '$'
}
},
// jQuery is already loaded with lib.js, no need for any path...
path : {
jquery : 'jquery.js'
}
});
이것이 가능합니까? 또는 lib/js가 require/the app js 앞에 포함 되었기 때문에 특정 전역 변수가 앱 모듈 내에 존재할 것이라는 가정을 계속해야합니까?
lib.js를로드하는 데 require를 사용하는 것은 CMS의 일부이므로 불가능합니다.
- 편집 -
무엇 lib 디렉토리 내용이 어쨌든 앉아 곳이기 때문에, 명명 된 모듈을 사용하여, 그냥 전역 객체에 대한 핸들을 반환에 대해?
define("lib", function() {
return this;
});
require(["lib"], function (lib) {
// use existing globals found in lib via
lib.jQuery
// or simply
jQuery
});
이렇게하면 가정 할 필요없이 종속성을 명명하는 require() 규칙을 따를 수 있습니다. 내 경로 구성이 경우이
path: {
'jquery': '//path/to/the/cdn'
}
처럼 보이는, 그래서 내가하는 CDN에서 jQuery를로드 내 프로젝트에 대한 정확한 같은 일을하고 있어요