2017-12-20 40 views
0

Knockout Sortable (v1.10)을로드하는 데 RequireJS을 사용하고 있는데, 이는 jquery-ui (v1.12)을 종속성으로 사용합니다. 이 두 가지 모두 bower를 통해 추가되었고 배치해야합니다. 그러나 일부 위젯에 대한 경로를 잘못 가져 오는 요구와 함께 이상한 문제가 발생합니다. 문제없이JQuery UI 및 RequireJS가 위젯을 잘못 매핑하고 있습니다.

paths: { 
    ... 
    'jquery-ui': '/lib/jquery-ui/jquery-ui', 
    ... 
    // or the .min version like below: 
    // 'jquery-ui': '/lib/jquery-ui/jquery-ui.min', 
} 

JQuery와 - UI 물건 부하를하지만, 구성 요소가 미쳐 :

내 경로 JQuery와 - UI에 대해 다음과 같습니다. 내 콘솔 로그는 다음과 같습니다.

GET http://localhost:5000/lib/jquery-ui/jquery-ui/ui/widgets/draggable.js net::ERR_ABORTED  
require.min.js:5 Uncaught Error: Script error for "jquery-ui/ui/widgets/draggable", needed by: knockout-sortable 
http://requirejs.org/docs/errors.html#scripterror 
    at l (require.min.js:5) 
    at HTMLScriptElement.onScriptError (require.min.js:5) 

3 개의 별도 위젯에 대해 동일한 오류가 발생합니다. 위젯은 /lib/jquery-ui/ui/widgets/*.js에 있지만 RequireJS는 두 번째로 jquery-ui 디렉토리 앞에 있습니다.

require("jquery-ui/ui/widgets/sortable"); 
require("jquery-ui/ui/widgets/draggable"); 
require("jquery-ui/ui/widgets/droppable"); 

내가 shimming 및 매핑의 모든 방식을 시도했다, 아무 것도 정말 일 것 같다, 나는 손실의 비트에있어 너무 :

녹아웃 정렬 가능한 지금처럼 자원을 요청 . 나는 JQuery와 - ui.min를 사용하는 경우 또한 노트의

는에 경로의 차례 : 좀 더 땜질 후

http://localhost:5000/lib/jquery-ui/jquery-ui.min/ui/widgets/*.js 

답변

1

, 나는 내가 약간 다음과 같이 내 경로의 수정이 필요 알아 냈 :

paths: { 
    ... 
    'jquery-ui': ['/lib/jquery-ui/jquery-ui.min'], 
    'jquery-ui/ui': ['/lib/jquery-ui/ui'], 
    ... 
} 

좀 더 구체적인 버전의 정의로 인해 발생하는 이상한 동작을 무시할 수 있습니다. 이 문제는 NestedSortable이라는 다른 패키지를 사용하면서 두 배로 복잡해졌습니다. 이 패키지는 jQuery UI 1.12 +의 새로운 폴더 구조를 다루기 위해 업데이트되지 않았습니다. 그래서 나는 그 repo를 포크하고 새로운 bower 꾸러미를 만들어야했다.