code: function gulpEngine(configuration) {
    var name = (configuration || {}).name
  
    if (!name) {
      throw new Error('Expected `name` in `configuration`')
    }
  
    return plugin
  
    function plugin(options) {
      var fileStream
      var config = xtend(options, configuration, {
        plugins: [],
        silentlyIgnore: true,
        alwaysStringify: true,
        output: false
      })
  
      /* Prevent some settings from being configured. */
      config.cwd = undefined
      config.files = undefined
      config.extensions = undefined
      config.out = undefined
      config.streamIn = undefined
      config.streamOut = undefined
  
      /* Handle virtual files. */
      fileStream = through.obj(transform)
  
      /* Patch. */
      fileStream.use = use
  
      return fileStream
  
      function transform(vinyl, encoding, callback) {
        if (vinyl.isStream()) {
          return callback(new PluginError(name, 'Streaming not supported'))
        }
  
        if (vinyl.isBuffer()) {
          return buffer(vinyl, config, callback)
        }
  
        return callback(null, vinyl)
      }
  
      /* Inject plug-ins. See: https://github.com/unifiedjs/unified-engine. */
      function use() {
        config.plugins.push([].slice.call(arguments))
        return fileStream
      }
    }
  }
docs: /* Create a Gulp plug-in.