How can I access configuration of Require.js
Asked Answered
F

3

42

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.

Forficate answered 21/12, 2012 at 20:47 Comment(2)
You trying to just read the URL?Gunpoint
Well, the value Require.js use as baseUrl (from where it load script)Forficate
G
17

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();
Gunpoint answered 21/12, 2012 at 20:58 Comment(3)
Hi, that's almost what I need. Only, toURL always return a ressources file (.js) and I'd need the folder.Forficate
Using require 2.3.5, calling require.toUrl() without a parameter triggers an error. toUrl expects one parameter and it expects it to be a string.Canalize
@JohnSlegers You can just provide an empty string: require.toUrl('').Sanction
M
99

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

Matta answered 5/2, 2014 at 14:26 Comment(2)
this is exactly what I've been looking for weeks. Thanks a lot.Tungsten
Thanks a lot. After googling a lot at last i got this perfect solution.Arlinearlington
B
22

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('');
Biogenesis answered 14/5, 2013 at 15:39 Comment(1)
FYI: If you use this and you configured urlArgs you will get base url with this attribute.Pullman
G
17

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();
Gunpoint answered 21/12, 2012 at 20:58 Comment(3)
Hi, that's almost what I need. Only, toURL always return a ressources file (.js) and I'd need the folder.Forficate
Using require 2.3.5, calling require.toUrl() without a parameter triggers an error. toUrl expects one parameter and it expects it to be a string.Canalize
@JohnSlegers You can just provide an empty string: require.toUrl('').Sanction

© 2022 - 2024 — McMap. All rights reserved.