Es scheint, dass requireJS nicht richtig mit jquery mobile 1.4.2 funktioniert
In der app.js habe ich die Minimalkonfiguration für RequireJS 2.1.11
requirejs.config({
"baseUrl": "js",
"paths": {
"jquery": "lib/jquery-1.10.2",
"jquerymobile": "lib/jquery_mobile/jquery.mobile-1.4.2"
}
});
Und wenn ich versuche, jquerymobile Abhängigkeit zu verwenden, habe ich:
define(["require", "jquery", "jquerymobile" ], function (require, $) {
console.log(success)
})
Dies zeigt einen Fehler in der Chrome-Konsole
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:63342/app/www/js/demos/js/jquery.js
Uncaught Error: Script error for: demos/js/jquery
http://requirejs.org/docs/errors.html#scripterror require.js:141
Dies wird durch den mobilen jQuery-Code verursacht:
(function ( root, doc, factory ) {
if ( typeof define === "function" && define.amd ) {
// AMD. Register as an anonymous module.
define( [ "demos/js/jquery" ], function ( $ ) {
factory( $, root, doc );
return $.mobile;
});
} else {
// Browser globals
factory( root.jQuery, root, doc );
}
}
Wenn ich mit jquery mobile 1.3.2 wechsle, scheint es, dass JS korrekt funktioniert. Gibt es eine Möglichkeit, requireJS mit Jquery Mobile 1.4.2 zu verwenden?
Antworten:
0 für die Antwort № 1Sie verwenden nicht die richtige Quelle. Wenn ich direkt zum offizielle Quelle, Aha:
(function ( root, doc, factory ) {
if ( typeof define === "function" && define.amd ) {
// AMD. Register as an anonymous module.
define( [ "jquery" ], function ( $ ) {
factory( $, root, doc );
return $.mobile;
});
} else {
Das ist genau das, was ich erwarten würde: jQuery Mobile hängt davon ab jquery
, so wie Sie jQuery immer mit RequireJS benötigen sollten.
Das demos/js/jquery
Abhängigkeit, die Sie in dem Code sehen, den Sie in Ihrer Frage zeigen, macht wenig Sinn. Es wäre möglich damit es funktioniert, aber es würde jeden erfordern, der jQuery Mobile benutzt, um einen unnötigen Konfigurationsrahmen durchzulaufen. Das ist eine große rote Flagge, dass etwas nicht stimmt.