Advertisement
Guest User

Untitled

a guest
Jul 21st, 2020
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const path = require('path')
  2. const TerserPlugin = require('terser-webpack-plugin')
  3. const MiniCssExtractPlugin = require('mini-css-extract-plugin')
  4. const OptimizeCssAsssetsPlugin = require('optimize-css-assets-webpack-plugin')
  5. const { CleanWebpackPlugin: CleanPlugin } = require('clean-webpack-plugin')
  6.  
  7. const NODE_ENV = process.env.NODE_ENV ? process.env.NODE_ENV : 'development'
  8.  
  9. module.exports = {
  10.     entry: {
  11.         app: path.resolve(__dirname, 'src', 'index.tsx')
  12.     },
  13.     output: {
  14.         filename:      '[name].js',
  15.         chunkFilename: '[chunkhash].js',
  16.         path:          path.resolve(__dirname, '../', 'dist', 'client'),
  17.         publicPath:    '/dist/'
  18.     },
  19.     resolve: {
  20.         extensions: [
  21.             '.styl',
  22.             '.tsx',
  23.             '.ts',
  24.             '.jsx',
  25.             '.js'
  26.         ]
  27.     },
  28.     module: {
  29.         rules: [
  30.             {
  31.                 test: /\.tsx?$/,
  32.                 exclude: /node_modules/,
  33.                 use: [
  34.                     'babel-loader',
  35.                     'ts-loader'
  36.                 ]
  37.             },
  38.             {
  39.                 test: /\.jsx?$/,
  40.                 exclude: /node_modules/,
  41.                 use: [
  42.                     'babel-loader'
  43.                 ]
  44.             },
  45.             {
  46.                 test: /\.css$/,
  47.                 use: [
  48.                     MiniCssExtractPlugin.loader,
  49.                     'css-loader',
  50.                     'postcss-loader'
  51.                 ]
  52.             },
  53.             {
  54.                 test: /\.styl$/,
  55.                 use: [
  56.                     MiniCssExtractPlugin.loader,
  57.                     'css-loader',
  58.                     'postcss-loader',
  59.                     'stylus-loader'
  60.                 ]
  61.             }
  62.         ]
  63.     },
  64.     plugins: [
  65.         new CleanPlugin(),
  66.         new MiniCssExtractPlugin({
  67.             filename:      '[name].css',
  68.             chunkFilename: '[chunkhash].css',
  69.             ignoreOrder:   false
  70.         })
  71.     ],
  72.     optimization: {
  73.         minimizer: [
  74.             new TerserPlugin({
  75.                 terserOptions: {
  76.                     output: {
  77.                         comments: false
  78.                     }
  79.                 },
  80.                 extractComments: false
  81.             }),
  82.             new OptimizeCssAsssetsPlugin()
  83.         ]
  84.     },
  85.     stats: {
  86.         children: false
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement