title: How to use gulp-load-plugins with TypeScript?
body: <p>I found no examples for <code>gulp-load-plugins</code> in TypeScript. Unfortunately,
  my TypeScript is too poor to understand, what should to do from <strong>@type/gulp-load-plugins</strong>
  comments.</p>
  
  <p>I tried:</p>
  
  <pre><code>import * as _gulpPlugins from 'gulp-load-plugins';
  const gulpPlugins: IGulpPlugins = _gulpPlugins();
  
  return gulp.src(sourceFilesGlobSelections)
          .pipe(gulpPlugins.pug())
          // ...
  </code></pre>
  
  <p>It makes 4 warnings from Webpack (I dont understand where number such <code>75:13-25</code> refers; <code>.pipe(gulpPlugins.pug())</code> is on 50 row): </p>
  
  <pre><code>WARNING in ../node_modules/gulp-load-plugins/index.js 75:13-25
  Critical dependency: the request of a dependency is an expression
   @ ./TaskManagers/MarkupPreprocessingHelper.ts
  
  WARNING in ../node_modules/gulp-load-plugins/index.js 81:48-63
  Critical dependency: the request of a dependency is an expression
   @ ./TaskManagers/MarkupPreprocessingHelper.ts
  
  WARNING in ../node_modules/gulp-load-plugins/index.js 117:40-55
  Critical dependency: the request of a dependency is an expression
   @ ./TaskManagers/MarkupPreprocessingHelper.ts
  
  WARNING in ../node_modules/gulp-load-plugins/index.js 122:51-66
  Critical dependency: the request of a dependency is an expression
   @ ./TaskManagers/MarkupPreprocessingHelper.ts
  </code></pre>
  
  <p>It was told in <code>@types/gulp-load-plugins</code>:</p>
  
  <pre><code>/**
   * Extend this interface to use Gulp plugins in your gulpfile.js
   */
  interface IGulpPlugins {
  }
  </code></pre>
  
  <p>I tried:</p>
  
  <pre><code>interface IGulpPlugins {
    pug: () =&gt; NodeJS.ReadWriteStream;
  }
  </code></pre>
  
  <p>It also defined:</p>
  
  <pre><code>declare module 'gulp-load-plugins' {
  
      interface IOptions {
          // ...
      }
  
      interface IPluginNameMappings {
          [npmPackageName: string]: string
      }
  
      /** Loads in any gulp plugins and attaches them to an object, freeing you up from having to manually require each gulp plugin. */
      function gulpLoadPlugins&lt;T extends IGulpPlugins&gt;(options?: IOptions): T;
  
      // ...
  }
  </code></pre>
  
  <p>It looks like maybe I should use <code>gulpLoadPlugins</code> instead of interface extending ...
  Is is all that I understand with my current TypeScirpt proficiency, but it not enough to understand how to use <code>gulp-load-plugins</code> in TypeScript.</p>