const HtmlWebpackPlugin = require('html-webpack-plugin'),
      StyleLintPlugin   = require('stylelint-webpack-plugin');

const path              = require('path'),
      webpack           = require('webpack');

// Plugins
const StyleLintPluginConfig = new StyleLintPlugin({
  configFile: '.stylelintrc',
  files: [
    'app/*.s?(a|c)ss',
    'app/components/*/*.s?(a|c)ss',
    'app/components/*/*/*.s?(a|c)ss'
  ],
  failOnError: false,
  quiet: false,
});
const HTMLWebpackPluginConfig = new HtmlWebpackPlugin({
  template: path.join(__dirname, "/public/index.html"),
  filename: 'index.html',
});

// Rules
const jsRules = {
  test: /\.(js|jsx)$/,
  use: 'babel-loader',
  exclude: /node_modules/
};
const fileRules = {
  test: /\.(png|jpg|gif|svg|otf|eot|ttf|woff)$/,
  loader: 'file-loader',
  options: {
    publicPath: "./",
    outputPath: './assets/'
  }
};


module.exports = {
  entry: './app/app.jsx',
  module: {
    rules: [
      jsRules,
      fileRules,
    ]
  },
  plugins: [
    HTMLWebpackPluginConfig,
    StyleLintPluginConfig
  ],
  // eslint: {
  //   configFile: './.eslintrc',
  //   failOnError: true
  // },
  resolve: {
    extensions: ['.js', '.jsx'],
    alias: { '@': path.join(__dirname) }
  },
};

@@ -861,17 +861,196 @@
 %0A  %7D%0A%7D;%0A
+const eslintRules = %7B%0A  enforce: %22pre%22,%0A  test: /%5C.(js%7Cjsx)$/,%0A  exclude: /node_modules/,%0A  loader: %22eslint-loader%22,%0A  options: %7B%0A    emitError: true,%0A    failOnError: true%0A  %7D%0A%7D;
 %0A
-
 %0Amodule.
@@ -1108,24 +1108,43 @@
    rules: %5B%0A
+      eslintRules,%0A
       jsRule
@@ -1246,95 +1246,13 @@
 fig%0A
+
   %5D,%0A
-  // eslint: %7B%0A  //   configFile: './.eslintrc',%0A  //   failOnError: true%0A  // %7D,%0A
   re

Add eslint to webpack order