在使用requirejs解析时,Modernizr未定义

时间:2014-01-20 11:35:27

标签: requirejs

我正在使用RequireJS 2.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.
});

当我执行modernizr中的代码时,问题是undefinedProducts.js。如果我删除参数modernizr而改为使用Modernizr变量(全局由Modernizer.js自然公开),那么代码工作正常。但是,这不是我理想的设置。

我已经仔细检查了拼写和配置,但我无法理解为什么会这样。我想我在这里错过了一个基本点,所以我希望有人可以解释我出错的地方。

1 个答案:

答案 0 :(得分:1)

试试这个:

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"
        }
    }
});

Modernizr公开Modernizr而非modernizr