[dojo]dojoConfigの主なパラメータまとめ
ほぼほぼ、このへんの内容をまとめたものです。
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はテストとかデバッグ用に使用し、もっとパワフルな変更を提供するものとのことだけど
使い分けのシーンが思いつかない。