Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var webpack = require('webpack');
  2. var path = require('path');
  3. var HtmlWebpackPlugin = require('html-webpack-plugin');
  4.  
  5.  
  6. const VENDOR_LIBS = [
  7.   'react', 'react-dom' , 'jquery'
  8. ]
  9.  
  10. module.exports = {
  11.   entry: {
  12.     bundle: './src/js/app.js',
  13.     vendor: VENDOR_LIBS
  14.   },
  15.   output: {
  16.     path: path.join(__dirname, 'dist'),
  17.     filename: '[name].[chunkhash].js'
  18.   },
  19.   module: {
  20.     rules: [
  21.       {
  22.         test: /\.js$/,
  23.         exclude: /(node_modules)/,
  24.         use: {
  25.           loader: 'babel-loader',
  26.           options: {
  27.             presets: ['react', 'env']
  28.           }
  29.         }
  30.       },
  31.       {
  32.         test: /\.scss$/,
  33.         use: [{
  34.           loader: "style-loader"
  35.         }, {
  36.           loader: "css-loader"
  37.         }, {
  38.           loader: "sass-loader",
  39.         }]
  40.       },
  41.       {
  42.         test: /\.(woff|woff2|eot|ttf)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  43.         use: {
  44.           loader: 'url-loader',
  45.           options: {
  46.             name: './fonts/[name].[ext]',
  47.             limit: 30000,
  48.             mimetype: 'application/font-woff',
  49.           },
  50.         }
  51.       },
  52.       {
  53.         test: /\.(svg|png|jpe?g)$/,
  54.         use: [
  55.             {
  56.             loader: 'file-loader',
  57.             options: {
  58.               name: './images/[name].[ext]',
  59.               limit: 30000
  60.             }
  61.           },
  62.           {
  63.             loader: 'image-webpack-loader',
  64.             options: {
  65.               mozjpeg: {
  66.                 progressive: true,
  67.                 quality: 65
  68.               },
  69.               // optipng.enabled: false will disable optipng
  70.               optipng: {
  71.                 enabled: false,
  72.               },
  73.               pngquant: {
  74.                 quality: '65-90',
  75.                 speed: 4
  76.               },
  77.               gifsicle: {
  78.                 interlaced: false,
  79.               },
  80.               // the webp option will enable WEBP
  81.               webp: {
  82.                 quality: 75
  83.               }
  84.             }
  85.           }
  86.         ]
  87.       }
  88.     ]
  89.   },
  90.   resolve: {
  91.     modules: [
  92.       path.resolve('./src/js'),
  93.       path.resolve('./src'),
  94.       'node_modules'
  95.     ]
  96.   },
  97.   plugins: [
  98.     new webpack.optimize.CommonsChunkPlugin({
  99.       names: ['vendor']
  100.     }),
  101.     new HtmlWebpackPlugin({
  102.       template: './src/index.html'
  103.     }),
  104.     new webpack.ProvidePlugin({
  105.       $: "jquery",
  106.       jQuery: "jquery",
  107.       "window.jQuery": "jquery"
  108.     })
  109.   ]
  110. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement