ほぼほぼ、このへんの内容をまとめたものです。
Dojo道場 ~ 第11回「Dojo 最新動向 - Asynchronous Module Definition」 (5/5):CodeZine(コードジン)
Configuring Dojo with dojoConfig - Archived Tutorial - Dojo Toolkit
dojo.config (dojo/_base/config) — The Dojo Toolkit - Reference Guide
dojoConfigの基本的な書き方
以下のように、dojo.js
のロードより前に記述すること。
<script type="text/javascript"> dojoConfig = { isDebug: true, async: true, parseOnLoad: true, baseUrl: 'XXX', packages: [{ name: "myapp", location: "/js/myapp" }], paths: { "dojo/main": "../mypackage/dojo-main" }, aliases: [ ["ready", "dojo/domReady"] ], ...(以下、同様にパラメータを並べる) }; </script> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.7.5/dojo/dojo.js"></script> ...
パラメータ
isDebug
公式ドキュメントによると、これをtrue
にするとFirebugを介してDojo用の拡張デバッグツールをロードするらしい。
デバッグウィンドウ自体はどのブラウザでも使えるとのこと。
parseOnLoad
true
にすると、ページ読み込み時にdojo/parser
がページをパースする。
デフォルトではfalse
であり、公式ドキュメントでもfalse
にして明示的にparser.parse()
を呼び出すべきだと記述している。
baseUrl
パッケージ間共通のモジュールの位置の設定。
たとえば、以下のように
index.html
で読み込むモジュールをmy
ディレクトリにまとめていたとする。
root ├── index.html └── my/ ├── discount.js ├── price.js └── pricelist.js
この場合、index.html
では
dojoConfig = { baseUrl: 'my', ... };
とする。
paths
パスのエイリアスを設定。
例えば、
root ├── index.html └── my/ └──long/ └──path/ └──name/ ├── discount.js ├── price.js └── pricelist.js
こうなっていて、baseUrl
をmy
にした時、
dojoConfig = { baseUrl: 'my', paths: { demo: 'long/path/name' } };
と書けば、demo/price
とかでモジュールを利用できる。
packages
カスタムパッケージの追加。
Dojo 1.7以前ではmodulePaths
を使っていたらしいが現在はこちらを使った書き方らしい。
カスタムパッケージと言ってるけど、要するに自分で作ったモジュールファイル置き場を指定する。
オブジェクトの配列として記述し、name, location
プロパティに加えmain
を指定できる。
dojoConfig = { packages: [ { name: "demo", location: location.href + "demo", main: "myModule" } ] };
main
に指定したモジュールは、ロードするデフォルトのモジュールとして認識され
モジュール名を省略した時にも自動的に呼び出されるようになる。
require(["demo"], function (myModule) { console.log(myModule.someProperty); });
aliases
文字通り、エイリアスを定義する。
次の例では、dojo/domReady!
のかわりにready!
と書くことができる。
aliases: [ ["ready", "dojo/domReady"] ]
paths
とpackages
はどう使い分けるの?
このへんの記事を読んだんだけど、イマイチよくわからん。
Development and JavaScript Blog | SitePen
引用すると、
In most scenarios, you should use packages. When creating a custom Dojo build to optimize your application, you will find additional options such as renaming packages on the fly and defining alternative destination locations for a package.
The paths and aliases properties do allow for some powerful changes on the fly, and can be used to create some interesting loader configuration, especially in testing and debugging. However, really, the better option in newer versions of Dojo is the map property, which we’ll cover in the next FAQ!
基本的にはpackages
を使えばよく、
paths
はテストとかデバッグ用に使用し、もっとパワフルな変更を提供するものとのことだけど
使い分けのシーンが思いつかない。