web-dev-qa-db-fra.com

Comment accéder à la configuration de Require.js

J'essaie d'obtenir la configuration baseUrl de Require.js à l'intérieur d'un module, mais je ne trouve pas où il est stocké.

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

Dans mon cas, le baseUrl est configuré par Require.js en utilisant l'attribut data-main Du fichier de script.

Je sais que je peux demander à module d'accéder aux attributs config (par exemple define(['module'])), mais je ne trouve pas comment accéder au niveau supérieur de l'option de configuration.

39
Simon Boudrias

Voulez-vous utiliser toUrl ?

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

modifier:
À partir de require.js 2.1.3, l'appel de toURL renvoie le chemin sans extension . Ainsi, pour obtenir la baseUrl:

var baseURL = require.toUrl();
15
epascarello

Vous pouvez également accéder à la configuration dans:

requirejs.s.contexts._.config 

pour inspecter directement l'objet de configuration.

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

90
xdemocle

Dans RequireJS 2.1.5, vous pouvez obtenir l'URL de base comme le dit epascarello, sauf que vous devrez passer la chaîne vide.

var baseURL = require.toUrl('');
19
Steven