title: Upgrading to Quasar 2 breaks PreloadWebpackPlugin?
body: <p>We recently upgraded to Quasar 2 and this resulted in <code>@vue/preload-webpack-plugin</code> throwing the following error:</p>
  <pre><code>(node:14265) UnhandledPromiseRejectionWarning:   TypeError: Cannot read property 'tap' of undefined
    
    - index.js:116 
      [myproject]/[@vue]/preload-webpack-plugin/src/index.js:116:65
    
    - Hook.js:154 SyncHook.lazyCompileHook
      [myproject]/[tapable]/lib/Hook.js:154:20
    
    - Compiler.js:631 Compiler.newCompilation
      [myproject]/[webpack]/lib/Compiler.js:631:26
    
    - Compiler.js:667 
      [myproject]/[webpack]/lib/Compiler.js:667:29
    
    - Hook.js:154 AsyncSeriesHook.lazyCompileHook
      [myproject]/[tapable]/lib/Hook.js:154:20
    
    - Compiler.js:662 Compiler.compile
      [myproject]/[webpack]/lib/Compiler.js:662:28
    
    - Watching.js:77 
      [myproject]/[webpack]/lib/Watching.js:77:18
  
  </code></pre>
  <p>The relevant section of the <code>quasar.conf.js</code>:</p>
  <pre class="lang-js prettyprint-override"><code>      extendWebpack (cfg) {
          cfg.plugins.push(new PreloadWebpackPlugin({
            rel: 'preload',
            as (entry) {
              if (/\.css$/.test(entry)) return 'style';
              if (/\.woff$/.test(entry)) return 'font';
              if (/\.png$/.test(entry)) return 'image';
              return 'script';
            }
          }));
          cfg.module.rules.push({
            enforce: 'pre',
            test: /\.(js|vue)$/,
            loader: 'eslint-loader',
            exclude: /node_modules/,
            options: {
              formatter: require('eslint').CLIEngine.getFormatter('stylish')
            }
          });
        }
  </code></pre>
  <p>Looking at the line in <code>preload-webpack-plugin</code> that is resulting in the error:</p>
  <pre class="lang-js prettyprint-override"><code>    compiler.hooks.compilation.tap(
        this.constructor.name,
        compilation =&gt; {
          // this line below
          compilation.hooks.htmlWebpackPluginBeforeHtmlProcessing.tap(
            this.constructor.name,
            (htmlPluginData) =&gt; {
              if (skip(htmlPluginData)) {
                return
              }
              this.generateLinks(compilation, htmlPluginData)
            }
          )
  </code></pre>
  <p>Can anyone suggest how to resolve this issue?</p>
  <p>Environment:</p>
  <ul>
  <li>NodeJS: 14.15.1</li>
  <li>@vue/preload-webpack-plugin: 1.1.2</li>
  <li>@quasar/app: 2.1.14</li>
  </ul>