Laravel.io
const webpack = require('webpack')

const alias = require('./webpack-partials/alias')
const utils = require('./webpack-partials/utils')
console.log(rules)
module.exports = {
  entry: {
    main: [
      'babel-polyfill',
      'webpack/hot/dev-server',
      // ?reload=true enables full page reload on hmr failure
      'webpack-hot-middleware/client?reload=true&noInfo=true',
      'app',
    ],
  },
  context: utils.resolve('resources/assets/js'),
  output: {
    path: utils.resolve('public/js'),
    filename: '[name].js',
    chunkFilename: '[id].[chunkhash].js',
    publicPath: '/js/',
    pathinfo: true,
  },
  devtool: '#eval-source-map',
  mode: 'development',
  module: {
    rules: [
  {
    test: /\.(js|vue)$/,
    loader: 'eslint-loader',
    enforce: 'pre',
    options: {
      formatter: require('eslint-friendly-formatter'),
    },
  },
  {
    test: /\.jsx?$/,
    exclude: [/node_modules(?!\/quill)/, /frontend/],
    loader: 'babel-loader',
    query: {
      cacheDirectory: true,
      presets: ['env'],
      plugins: ['lodash'],
    },
  },
  {
    test: /\.tsx?$/,
    loader: 'ts-loader',
    options: {
      compilerOptions: {
        declaration: false,
        target: 'es5',
        module: 'es2015',
      },
      transpileOnly: true,
    },
  },
  {
    test: /\.vue$/,
    loader: 'vue-loader',
    options: {
      esModule: true,
      loaders: {
        scss: 'vue-style-loader!css-loader!sass-loader',
      },
    },
  },
  {
    test: /\.scss$/,
    use: [
      {
        loader: 'style-loader',
        options: {
          sourceMap: true,
        },
      },
      {
        loader: 'css-loader',
        options: {
          sourceMap: true,
        },
      },
      {
        loader: 'sass-loader',
        options: {
          sourceMap: true,
          includePaths: [
            utils.resolve('../../vendor/zurb/foundation/scss'),
          ],
        },
      },
    ],
  },
  {
    test: /\.css$/,
    use: [
      {
        loader: 'style-loader',
        options: {
          sourceMap: true,
        },
      },
      {
        loader: 'css-loader',
        options: {
          sourceMap: true,
        },
      },
    ],
  },
  {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    options: {
      limit: 10000,
      name: utils.assetsPath('img/[name].[hash:7].[ext]'),
    },
  },
  {
    test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
    loader: 'url-loader',
    options: {
      limit: 10000,
      name: utils.assetsPath('media/[name].[hash:7].[ext]'),
    },
  },
  {
    test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
    loader: 'url-loader',
    options: {
      limit: 10000,
      name: utils.assetsPath('fonts/[name].[hash:7].[ext]'),
    },
  },
]
  },
  resolve: {
    extensions: ['.js', '.jsx', '.tsx', '.ts', '.vue', '.svg', '.scss'],
    modules: [
      utils.resolve('resources/assets/js'),
      utils.resolve('resources/assets/js/lib'),
      utils.resolve('node_modules'),
    ],
    alias: {
  'vue$': 'vue/dist/vue.runtime.min.js',
},
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"development"',
      },
    }),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoEmitOnErrorsPlugin(),
  ],
}

Please note that all pasted data is publicly available.