index.js
function(name/*, options, fns*/) {
    var args = utils.slice(arguments, 1);
    var opts = args.shift();
    var type = this.getLoaderType(opts);
    this[type].set(name, this[type].resolve(args));
    return this;
  }
function(name/*, options, fns*/) {
    var args = utils.slice(arguments, 1);
    var opts = args.shift();
    var type = this.getLoaderType(opts);
    this[type].set(name, this[type].resolve(args));
    return this;
  }
function ( name /*, options, fns*/ ) { var args = utils . slice ( arguments , 1 ) ; var opts = args . shift ( ) ; var type = this . getLoaderType ( opts ) ; this [ type ] . set ( name , this [ type ] . resolve ( args ) ) ; return this ; }
Register a loader. The first argument is the name of the loader to register.

```js
// create a loader from other loaders.
loaders.loader('foo', ['bar', 'baz']);
// pass a function
loaders.loader('foo', function(patterns, options) {
return glob.sync(patterns, options);
});
// combination
loaders.loader('foo', ['bar', 'baz'], function(patterns, options) {
return glob.sync(patterns, options);
});
```

@name .loader
@param  {String} `name`
@param  {Object} `options`
@param  {Function|Array} `fns` One or more loader functions or names of other registered loaders.
@return {Array}
@api public
Register a loader . The first argument is the name of the loader to register .