How can I access configuration of Require.js

2019-01-16 18:46发布

问题:

I try to get the baseUrl configuration of Require.js inside a module, but I can't find where it is stored.

define([], function() {
  // Here I'd like to access the `baseUrl` require.js is using
  var baseUrl = requirejs.config().baseUrl;
});

In my case, the baseUrl is set up by Require.js using the data-main attribute of the script file.

I know I can request module to access the config attributes (e.g. define(['module'])), but I can't find how to access the higher level of configuration option.

回答1:

Do you want to use toUrl?

define({
    load: function (name, parentRequire, load, config) {
           var fullUrl = parentRequire.toUrl("foo/bar.css");
    }
});

edit:
Starting in require.js 2.1.3, calling toURL return the path without extension. As so, to get the baseUrl:

var baseURL = require.toUrl();


回答2:

You can also reach the config into:

requirejs.s.contexts._.config 

to inspect the config object directly.

https://groups.google.com/forum/#!topic/requirejs/Hf-qNmM0ceI



回答3:

In RequireJS 2.1.5, you can get the base URL just like epascarello says, except you'll need to pass the empty string.

var baseURL = require.toUrl('');