62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<div class="intro">
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<p>Loader can be used programatically as an offline dependency calculator.</p>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass</div>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<h2>Instantiating Loader</h2>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<p>Loader comes with the `YUI` seed file by default, so it's ready to be used immediately, so there is
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassno need to load any additional files.</p>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassvar Y = YUI();
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassvar loader = new Y.Loader();
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<h2>Resolving dependencies</h2>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<p>`Loader` comes with a `resolve` method that it uses internally to calculate dependencies and
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassbuild URL's for injecting scripts into the page.</p>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassvar Y = YUI();
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassvar loader = new Y.Loader({
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass require: [ 'node' ]
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass});
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass//Tell loader to calculate dependencies
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassloader.calculate();
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassvar out = loader.resolve();
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<p>In the above code, `out` will be an Object containing the keys, `js` and `css` that will contain
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassan array of URL's to load the modules needed to resolve `node`.</p>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<h2>Advanced Usage</h2>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass{{>loader-resolve}}
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<p>The above code will generate this URL for you:</p>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<div class="example code" id="resolve1">
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass</div>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<script>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass{{>loader-resolve}}
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassdocument.getElementById('resolve1').innerHTML = out.js[0];
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass</script>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<p>You can use any `Loader` configuration option here as well: `modules`, `groups`, `patterns`, etc.</p>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<h2>CLI use within Node.js</h2>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass<p>Here we use Loader to calculate dependencies from the command line and generate a combined
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassfile. This could be used in a build system to auto-generate a custom seed file with modules
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glassneeded for immediate access.</p>
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass{{>loader-resolve-node}}
62898daffb90e74ea7a9000bf3e0fdc9e570b7a2Dav Glass```