下面给出了一个错误“无法读取未定义的属性'fn'”,因为它无法找到jquery。
requirejs.config({
baseUrl: "/static/javascript",
paths: {
jquery: "vendor/jquery",
underscore: "vendor/underscore"
},
shim: {
underscore: {
exports: "_"
}
} });
require(["underscore","jquery"],function(un){
console.log("jQuery version: ", $.fn.jquery);
console.log("underscore identity call: ", _.identity(5));
console.log("underscore identity call: ", un.identity(5));
});
但是,如果我将代码更改为以下内容:
requirejs.config({
paths: {
jquery: "vendor/jquery",
underscore: "vendor/underscore"
},
shim: {
underscore: {
exports: "_"
}
} });
require(["underscore","vendor/jquery"],function(un){
console.log("jQuery version: ", $.fn.jquery);
console.log("underscore identity call: ", _.identity(5));
console.log("underscore identity call: ", un.identity(5));
});
现在可以使用。如果你看,路径是一样的。为什么我的系统有这样的baseURL问题?第一个代码怎么了?
答案 0 :(得分:0)
我认为您需要在此声明您将使用的全局
require(["underscore","jquery"],function(un, $ /* <- insert here */){
console.log("jQuery version: ", $.fn.jquery); // <- so here $ exists, $.fn too
在第二个例子中它起作用,因为我想 jQuery,Backbone,Underscore使用全局函数$,_等等自我注册,即使与RequireJS垫片一起使用也是如此。