RequireJS module.config()始终返回undefined

时间:2014-08-08 21:29:37

标签: javascript requirejs

我在init脚本中声明require.config(...),然后需要一些自定义模块,并module.config()返回undefined

example

require.config({
   noGlobal: true
});

define('foo', function (require, exports, module) {
    $('#debug').append($('<div>', { 
        text : "Module config = " + JSON.stringify(module.config())
    }));

    return 'Hello';
});

require(['foo'], function (foo) {
    $('#debug').append($('<div>', { 
        text : "Got foo = " + JSON.stringify(foo)
    }));
});

如何获取require.config对象?

1 个答案:

答案 0 :(得分:2)

您的问题是由对module.config()的误解造成的。

包含要演示的代码示例。

module.config演示

require.config({
    noGlobal: true,
    config: {
        foo: {
            locale: 'fr-fr'
        }
    }
});

define('foo', function (require, exports, module) {

    console.log("Module config");
    console.log(module.config());

    $('#debug').append($('<div>', {
        text: "Module config = " + JSON.stringify(module.config())
    }));

    return 'Hello';
});

require(['foo'], function (foo) {
    $('#debug').append($('<div>', {
        text: "Got foo = " + JSON.stringify(foo)
    }));

});

解决方案#1:在window对象中保存RequireJS配置

window.requireJsConfig = {
    noGlobal: true,
    config: {
        foo: {
            locale: 'fr-fr'
        }
    }
};

require.config(window.requireJsConfig);

define('foo', function (require, exports, module) {
    // Access  window.requireJsConfig here    
    return 'Hello';
});

解决方案#2:在require对象中保存RequireJS配置

require.requireJsConfig = {
    noGlobal: true,
    config: {
        foo: {
            locale: 'fr-fr'
        }
    }
};

require.config(require.requireJsConfig);