Ich habe eine Backbone-Anwendung mit Require.js für AMD. Ich lade jQuery von Google CDN, aber nach dem Build scheint der Pfad zu jQuery unterbrochen zu sein.Require.js build (r.js) mit CDN jQuery verbindet sich nicht mit dem guten jQuery-Pfad
Die Erstellung erfolgt ohne Probleme oder Fehler. Aber sobald ich die Build-Version verwenden, wird jQuery hinzugefügt Seite mit dieser URL:
http://example.com/assets/js/jquery.js
anstelle der URL CDN. Ich denke, das liegt daran, dass meine Pfadkonfiguration verloren gegangen ist und dass eine Abhängigkeit von "jquery" nicht als Verweis auf den Pfad, sondern als normaler Aufruf eines Skripts verstanden wird.
Hier ist meine Hauptdatei:
main.js
require.config({
baseUrl: '/assets/js/',
paths: {
use: 'libs/use-0.2.0.min',
jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min',
underscore: 'libs/underscore-1.3.1.min',
backbone: 'libs/backbone-0.9.2.min'
},
use: {
'underscore': {
attach: '_'
},
'backbone': {
deps: ['use!underscore', 'jquery'],
attach: function(_, $) {
return Backbone;
}
}
}
});
require(['views/app'], function(AppView){
var app_view = new AppView();
});
app.build.js
({
appDir: "../../www",
baseUrl: "assets/js",
dir: "../../build",
optimizeCss: "none",
optimize: "uglify",
findNestedDependencies: true,
preserveLicenseComments: false,
paths: {
use: 'libs/use-0.2.0.min',
jquery: 'empty:',
underscore: 'libs/underscore-1.3.1.min',
backbone: 'libs/backbone-0.9.2.min'
},
modules: [
{
name: "main",
include: ["views/app"],
exclude: ["jquery"]
}
],
use: {
'underscore': {
attach: '_'
},
'backbone': {
deps: ['use!underscore', 'jquery'],
attach: function(_, $) {
return Backbone;
}
}
}
})
(und ich bin mit use.js zum Laden Nicht-AMD-Plugins)
Nach einigen mehr Forschung, scheint es, dass dieses Verhalten durch use.js –
RequireJS 2.0 jetzt Schiffe mit 'shim' verursacht wird, das so ziemlich die gleiche Funktion wie use.js –