2017-12-20 11 views
0

Ich verwende RequireJS zu laden (v1.10), die jquery-ui (v1.12) als Abhängigkeit hat. Beide wurden durch Bower hinzugefügt und in meine Require-Konfiguration platziert. Allerdings habe ich einige seltsame Probleme mit erfordern den Pfad für einige der Widgets falsch abrufen.JQuery UI und RequireJS sind Widgets nicht richtig zuordnen

Mein Weg sieht wie folgt für jquery-ui:

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

Die jquery-ui Sachen Lasten ohne Probleme, aber die Komponenten verrückt. Mein Konsolenprotokoll sieht ungefähr so ​​aus:

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) 

Ich bekomme den gleichen Fehler für 3 separate Widgets. Die Widgets befinden sich unter /lib/jquery-ui/ui/widgets/*.js, aber RequireJS stellt ein zweites Verzeichnis jquery-ui vor.

Der Knockout Sortable fordert die Ressourcen wie so:

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

ich alle Arten der Shim und Mapping versucht haben, und nichts scheint wirklich zu arbeiten, und so ich etwas bin ratlos .

Auch der Hinweis, wenn ich jquery-ui.min verwenden, die wiederum den Weg in:

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

Antwort

1

Nach etwas mehr Bastelei, habe ich herausgefunden ich brauchte, um etwas meinen Weg zu ändern ist wie folgt:

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

Es stellt sich heraus, dass die etwas spezifischere Version der Definition mir erlaubt, das seltsame Verhalten zu übergehen, das vorkam. Das Problem wurde zweifach komplizierter, da ich ein anderes Paket namens NestedSortable verwendete. Dieses Paket wurde nicht aktualisiert, um sich mit den neuen Ordnerstrukturen von jQuery UI 1.12 + zu befassen. Also musste ich dieses Repo forkieren und ein neues Bower-Paket erstellen.

Verwandte Themen