Require JS API -documentation을 올바르게 읽으려고하는데이 라이브러리를로드 할 수 없으므로 정의되지 않은 것으로 정의되지 않습니다. . NPM-WebJars를 통해이 방법을 사용하고 있습니다. 사용자가 정의하는 방법과 관계가 없습니다.AMD가 지원하지 않는 모듈이있는 RequireJS 구성
기본적으로 내 프로젝트에서 the react-bootstrap-switch -library을 사용하려고합니다. 여기에 JavaScript-file source in Pastebin이 있으므로 마스터 브랜치에서 변경 될 수 있습니다. react-bootstrap-switch는 exports.default = Switch로 라이브러리를 정의합니다. RequireJS를 사용하여 정의 된 몇 가지 다른 모듈이 있습니다.이 모듈은 AMD 지원이 있고 작동합니다. 나는 그것이 작동하지 않습니다 -import 단지 표준 requirejs.config에 따라서 라이브러리
define(['react', 'react-bootstrap-switch'], function(React, Switch){
console.log(Switch); // <- undefined
}
를 사용 RequireJS
requirejs.config("paths":{"react-bootstrap-switch":["@routes.WebJarAssets.at("react-bootstrap-switch/15.0.0/dist/js/index")"]}}); // the file location
을 사용하고 방법은 다음과
이며, AMD 지원의 부족 때문이다. 그래서 나는 shim을 사용해야한다고 생각하지만, 어떻게해야합니까? 나는 그것을 약간 읽었지만 그것을 사용하여 라이브러리를 제대로 가져 오지 못했습니다. 아마도 꽤 쉬운 일 이겠지만 작동하지 않는 것 같습니다. 예를 들어
requirejs.config({
"paths":{"react-bootstrap-switch":["@routes.WebJarAssets.at("react-bootstrap-switch/15.0.0/dist/js/index")"]},
"shim": {
"react-bootstrap-switch": {
exports: 'Switch'
}}});
은 정의되지 않은 상태로 둡니다. 나는 init 함수를 사용하여 그 사이에 들어가려고 노력했지만, 올바른 네임 스페이스를 윈도우 안에 위치시킬 수 없다. 또한 '스위치'대신 '기본값'을 시도하는 경로와 다른 트릭을 시도하기 전에 경로를 shimming하는 순서를 전환하려고 시도했지만 정의되지 않은 상태로 인해 제대로 가져 오지 않는 것 같습니다.
내가 할 수있는 마지막 일은 코드를 로컬에서 가져 와서 exports.default 대신 다른 것으로 변경하거나 내 자신의 기능을 코드하는 것입니다. 그러나이 코드를 나중에 참조 할 수 있도록하고 싶습니다.