当由requirejs解决时,Modernizer未定义

当由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: {

我使用的是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: {
            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!当然天哪,我应该意识到我需要导出图书馆已经在全球导出的内容。干杯