1

durandal을 사용하여 응용 프로그램을 만듭니다. 즉, requirejs을 사용하고 있습니다. 강력한 knockout-sortable 플러그인을 사용하기로 결정했습니다. 밝혀 졌을 때 내부적으로는 jquery-ui 기능을 사용 했으므로 좋은 결과를 얻었습니다. 나는 또한 내 응용 프로그램에서 전체 jquery-ui 패키지를 정의, 그래서 내 requirejs 구성은, 플러그인 작성자가 jquery.ui.sortable을 얻기 위해 AMD 로딩을 사용번들 라이브러리의 단일 모듈 필요 (예 : jquery-ui)

무엇보다
"jqueryui": "../Scripts/jquery-ui-1.10.3.custom", 

로 수치, 여기에 문제입니다. jquery-ui은 전체 패키지도 단일 모듈도 requirejs으로 정의되지는 않습니다.

는 명시 적으로 표시하거나 jquery.ui.sortable 모듈이 플러그인이 요구되는 jquery-ui 내부의 주위에 이미이 있다고 requirejs을 알 수있는 방법이 그래서는 별도로 jquery-ui에서 모든 모듈을 수입해야하고 각각 requirejs 설정에 경로를 정의 수행 ?

답변

2

당신은 설정에 간단한 별칭 수있을 것 중 하나를 사용하는 경우 path requirejs의 설정

paths: { 
    'jquery.ui.sortable': 'jquery-ui' 
} 

또는 작동하지 않는 경우, 당신은 map 설정

map: { 
    '*': { 
    'jquery.ui.sortable': 'jquery-ui' 
    } 
} 

또는 사용할 수를 사용하여 map, 그 하나의 플러그인에 대해서만 별칭을 설정할 수도 있습니다.

map: { 
    'THE-JQUERY-UI-PLUGIN-ID': { 
    'jquery.ui.sortable': 'jquery-ui' 
    } 
} 

그 마지막 하나는 그것을 만든다. 문제의 플러그인 인 whevener가 require("jquery.ui.sortable")이라고 부르는 것은 실제로 이미 내장 된 정렬 가능한 기능을 가지고있는 jquery-ui 모듈을 가져온다.

꽤 사용하고있는 jquery-ui-amd 프로젝트도 있습니다. 이 프로젝트는 모든 jquery-ui 모듈을 개별 AMD 모듈 https://github.com/jrburke/jqueryui-amd으로 변환합니다. 프로젝트를보다 쉽고 모듈화 된 방식으로 통합 할 수 있습니다. 그러나 플러그인을 사용하려면 jquery.ui.sortable이 필요하므로 별칭을 사용해야하지만 jquery-ui-amd에는 jquery-ui/sortable이됩니다.

+0

간단하고 고통없는 해결책처럼 보입니다. 감사합니다. 나는 이것을 내일의 직장에서 이런 식으로 시도하고 여기에 피드백을 줄 것이다. 또한이'jquery-ui' 모듈 버전을 가져 주셔서 감사합니다. – patryk