如何在main.js中定义config.paths后访问它

时间:2014-03-30 08:25:58

标签: javascript requirejs

这是我的main.js

requirejs.config({
    baseUrl: '/js',
    paths: {
        jquery: 'jquery',
        ckeditor: 'ckeditor/ckeditor',
        juiAutocomplete: 'jquery-ui-1.10.4.custom',
        tags: 'bootstrap-tokenfield',
        createPost: 'createPost',
        domReady: 'domReady',
        test: 'dropUpload'
    },
    shim: {
        createPost: {
            deps: ['domReady!']
        }
    },
    deps: ['require'],
    callback: function(require) {
        'use strice';
        var moduleName = location.pathname.replace(/\//g, '-').replace(/^-/, '');
        console.log('moduleName is: ' + moduleName);
        console.log('yes is: ' + require.config);

    }
});

在回调中,我想访问上面requirejs.config()中定义的路径。如果有可能,该怎么办?

我的目的是查看是否定义了模块路径(存在)。如果是,则加载模块脚本。如果未选中,则会在控制台中生成加载错误。

以下是此控制台命令在requirejs中可用的方法。我无法找到访问我在requirejs.config()中定义的路径的方法。这是正确的方向吗?

for (var i in requirejs) {console.log(i);}

配置 nextTick 版 jsExtRegExp isBrowser 小号 的toURL 民主基金 定义 规定 onerror的 createNode 加载 EXEC 为undef

1 个答案:

答案 0 :(得分:0)

没有公共API可以从模块内部获取整个 RequireJS配置。您的配置中可以有config部分,可以访问哪些模块。

但是,您描述的尝试解决的问题不需要您阅读配置。以正常方式调用require将加载模块。如果无法加载模块,则会在控制台上生成错误。大概你也想要你的代码来知道加载是否成功。您可以使用errback

执行此操作
require(['foo'], function (foo) {
    // Whatever you'd like to do with foo on success.
}, function (err) {
    // Whatever you'd like to do on error.
});

如果由于某种原因你必须直接读取配置,那么它位于requirejs.s.contexts.<context name>.config,其中<context name>是RequireJS上下文的名称。默认上下文名为_,因此其配置为requirejs.s.contexts._.config。但是,这是公共API的一部分,可以随时更改。