web-dev-qa-db-ja.com

Require.jsの構成にアクセスするにはどうすればよいですか

モジュール内のRequire.jsのbaseUrl構成を取得しようとしましたが、それが格納されている場所が見つかりません。

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

私の場合、baseUrlは、スクリプトファイルの_data-main_属性を使用してRequire.jsによって設定されます。

moduleconfig属性(define(['module'])など)へのアクセスを要求できることは知っていますが、より高いレベルの構成オプションにアクセスする方法がわかりません。

39
Simon Boudrias

toUrl を使用しますか?

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

edit:
require.js 2.1.3で開始 toURLを呼び出すと、拡張子なしのパスが返されます 。そのため、baseUrlを取得するには:

var baseURL = require.toUrl();
15
epascarello

設定は次の場所にも到達できます。

requirejs.s.contexts._.config 

設定オブジェクトを直接検査します。

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

90
xdemocle

RequireJS 2.1.5では、空の文字列を渡す必要があることを除いて、epascarelloが言うようにベースURLを取得できます。

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