title: vue-loader 15 with laravel-mix
body: <p>So i am trying to update my vue-loader in laravel project to version 15.2.1.  After updating dependencies and running npm run watch first i get an error that i shoul use VueLoaderPlugin. I added it like official documentation suggests.<br>
  After trying to run build command again i get this error for each one of my single file components:  </p>
  
  <pre><code>    ERROR in ./node_modules/css-loader!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/lib/loader.js!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/users/User.vue?vue&amp;type=style&amp;index=0&amp;id=d0ee1f54&amp;scoped=true&amp;lang=sass
  Module build failed:
  &lt;template lang="pug"&gt;
  ^
        Invalid CSS after "": expected 1 selector or at-rule, was ".user-container"
        in C:\MAMP\htdocs\lightCRM\resources\assets\js\components\users\User.vue (line 1, column 1)
   @ ./node_modules/style-loader!./node_modules/css-loader!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/lib/loader.js!./node_modules/vue-loader/lib??vue-loader-options!./resources/assets/js/components/users/User.vue?vue&amp;type=style&amp;index=0&amp;id=d0ee1f54&amp;scoped=true&amp;lang=sass 4:14-338
   @ ./resources/assets/js/components/users/User.vue?vue&amp;type=style&amp;index=0&amp;id=d0ee1f54&amp;scoped=true&amp;lang=sass
   @ ./resources/assets/js/components/users/User.vue
   @ ./resources/assets/js/routes/routes.js
   @ ./resources/assets/js/app.js
   @ multi ./resources/assets/js/app.js
  </code></pre>
  
  <p>If iam adding this rule to my laravel-mix config   </p>
  
  <pre><code>rules: [
        {
          test: /\.vue$/,
          loader: 'vue-loader'
        }
      ]
  </code></pre>
  
  <p>Then compilation runs successfully, but in console I get:</p>
  
  <pre><code>[vue warn]: failed to mount component: template or render function not defined.  
  </code></pre>
  
  <p>I use sass and pug in my vue components with appropriate loaders. Adding more rules to <code>laravel-mix</code> config seems to make no difference. All dependencies are up-to date and work well with <code>vue-loader v.14.2.2</code>. Node.js version is <code>10.1.0</code> and npm is <code>6.1.0</code>.<br>
  Also here is my package.json:  </p>
  
  <pre><code>    {
      "private": true,
      "scripts": {
          "dev": "npm run development",
          "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
          "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
          "watch-poll": "npm run watch -- --watch-poll",
          "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
          "prod": "npm run production",
          "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
      },
      "devDependencies": {
          "axios": "^0.18.0",
          "babel-core": "^6.26.3",
          "babel-loader": "^7.1.4",
          "babel-plugin-transform-runtime": "^6.23.0",
          "babel-preset-es2015": "^6.24.1",
          "cross-env": "^5.1.6",
          "css-loader": "^0.28.11",
          "laravel-mix": "2.1",
          "lodash": "^4.17.10",
          "node-sass": "^4.9.0",
          "pug": "^2.0.3",
          "pug-loader": "^2.4.0",
          "pug-plain-loader": "^1.0.0",
          "sass-loader": "^7.0.1",
          "sass-resources-loader": "^1.3.3",
          "vue": "^2.5.16",
          "vue-html-loader": "^1.2.4",
          "vue-loader": "^15.2.1",
          "vue-style-loader": "^4.1.0"
      },
      "dependencies": {
          "es6-promise": "^4.2.4",
          "vue-multiselect": "^2.1.0",
          "vue-router": "^3.0.1",
          "vuex": "^3.0.1"
      }
  }  
  </code></pre>
  
  <p>Here is resolve statement from WebpackConfig.js  </p>
  
  <pre><code>buildResolving() {
      this.webpackConfig.resolve = {
          extensions: ['*', '.js', '.jsx', '.vue'],
  
          alias: {
              vue$: 'vue/dist/vue.common.js'
          }
      };
  
      return this;
  }  
  </code></pre>
  
  <p>And here is all of my webpack.mix.js  </p>
  
  <pre><code>    mix.js('resources/assets/js/app.js', 'public/js')
     .copy('resources/assets/fonts/', 'public/fonts/')
     .webpackConfig({
       plugins: [
         new VueLoaderPlugin()
       ],
       resolve: {
         alias: {
           'Global': path.resolve('resources/assets/sass')
         }
       }
     })
  </code></pre>