code: function defaultOpts(opts, parentId) {
      var targets = opts.targets && opts.targets.length
              ? asArray(opts.targets)
              : [defaultTarget(parentId)];
  
      return mixin({targets: targets,
              grep: [/\.js$/],
              ungrep: opts.ungrep && opts.ungrep.length
                      ? asArray(opts.ungrep)
                      : defaultUngrep(targets),
              scope: {},
              recurse: true},
              opts, true);
  }
docs: Returns the default options for this module merged
  with the given options passed to this function.
  
  The defaults are as follows:
  - grep: any file ending in `.js`
  - ungrep: any path including `node_modules`
  - scope: an empty object
  - recurse: true
  - targets: return value from `defaultTargets()`
  
  @param {Object} opts The options to merge the defaults into.
  @param {String} parentId The path of the requiring module.
  @returns {Object} The merged options.
  @api private