我有一個使用Require.js for AMD的Backbone應用程序。我從Google CDN加載jQuery,但在構建之後,jQuery的路徑似乎被破壞了。Require.js使用CDN構建(r.js)jQuery沒有鏈接到良好的jQuery路徑
構建正在發生,沒有任何問題或錯誤。但是,一旦我用的是內部版本,jQuery是用這個URL添加到頁面:
http://example.com/assets/js/jquery.js
取而代之的CDN網址。我覺得這是由於我的路徑配置丟失並且需要依賴於「jquery」的事實不被視爲對路徑的引用,而是作爲對腳本的正常調用。
這是我的主文件:
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;
}
}
}
})
(和我使用的裝載use.js非AMD插件)
一些調查研究後,會出現這種行爲是由use.js – 2012-03-27 19:27:39
RequireJS 2.0現在用'shim'這確實幾乎一樣use.js引起 – 2012-06-04 10:58:41