Require JSで設定をmodule外に出して、それをビルド時に同梱する
モジュール別の設定を読み込む
RequireJSではモジュールの名前として"module"が予約されていて、モジュール内でmoduleモジュールを取得するとそのモジュールの情報を参照することが出来ます。
define('foo',['module'], function (module) { });
RequireJS API
config methodで設定できる項目の中のconfigにモジュール名をkey何らかのオブジェクトをvalueという辞書を設定しておくと、
moduleモジュールのconfig methodでそのオブジェクトを取得することが出来ます。
今回はmodule moduleとかconfig configとか見てて混乱するのが多いですね。
こんな設定をすると
requirejs.config({ config: { 'baz': { color: 'blue' } } });
こんなふうに取れます。
define('baz',['module'], function (module) { //Will be the value 'blue' var color = module.config().color; });
こういった設定をr.jsでのビルド時に同梱してrequirejs.config/require.configでの設定と一緒に使われるデフォルト値のような形にすることは出来ないようです。
設定込みのビルドというのは出来ないわけです。
ビルド時に設定を同梱する
同梱出来ない設定をどうやって同梱するか?
設定を行うJavaScriptのコードを同梱してしまえば良いのです。
RequireJS2.1からはビルド後のmodule全体を囲むwrapの設定で複数ファイルを指定することが出来るようになっています。
r.js/example.build.js at master · requirejs/r.js · GitHub
wrap.startFileの2つ目以降に設定を行うJavaScriptのファイルを入れれば同梱出来ます。
環境別ビルド等でどんどん活用していきましょう。