当由requirejs解决时,Modernizer未定义
我使用的是RequireJS2.1.6 下面是main.js文件:当由requirejs解决时,Modernizer未定义,requirejs,Requirejs,我使用的是RequireJS2.1.6 下面是main.js文件: requirejs.config({ paths: { baseUrl: "/Scripts", products: "Products/products", jquery: "jquery-2.0.2.min", modernizr: "modernizr-2.6.2" }, shim: { jquery: {
requirejs.config({
paths: {
baseUrl: "/Scripts",
products: "Products/products",
jquery: "jquery-2.0.2.min",
modernizr: "modernizr-2.6.2"
},
shim: {
jquery: {
exports: "$"
},
modernizr: {
exports: "modernizr"
}
}
});
以下是Products.js文件声明:
define(["modernizr"], function (modernizr) {
// Rest of code.
});
问题是当我在Products.js
中执行代码时,modernizer
是未定义的。如果我删除参数Modernizer
,而改用Modernizer
变量(Modernizer.js自然会全局公开),那么代码工作正常。但是,这不是我理想的设置
我已经仔细检查了拼写和配置,但我不明白为什么会这样。我想我错过了一个基本点,所以我希望有人能解释我错在哪里。试试这个:
requirejs.config({
paths: {
baseUrl: "/Scripts",
products: "Products/products",
jquery: "jquery-2.0.2.min",
modernizr: "modernizr-2.6.2"
},
shim: {
jquery: {
exports: "$"
},
modernizr: {
exports: "Modernizr"
}
}
});
Modernizer公开了Modernizer
而不是Modernizer
DOH!当然天哪,我应该意识到我需要导出图书馆已经在全球导出的内容。干杯