SHARE
TWEET

Untitled

a guest Sep 16th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const path = require('path');
  2. //const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
  3. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  4. const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
  5. const { CleanWebpackPlugin } = require('clean-webpack-plugin');
  6. const SpriteLoaderPlugin = require('svg-sprite-loader/plugin');
  7. const glob = require('glob').sync;
  8.  
  9. module.exports = env => {
  10.    return {
  11.       entry: {
  12.          main: './main.js',
  13.          [env.NODE_ENV]: `./scss/${env.NODE_ENV}.scss`,
  14.          sprites: glob(`./svg/*.svg`)
  15.       },
  16.       output: {
  17.          filename: '[name].js',
  18.          path: path.resolve(__dirname, '../Synoptik.Intranet/static/js'),
  19.          publicPath: 'http://dev.synoptik.intranet.no/static/js/'
  20.       },
  21.       devtool: 'inline-source-map',
  22.       module: {
  23.          rules: [
  24.             {
  25.                test: /\.(js|jsx)$/,
  26.                exclude: /node_modules/,
  27.                use: {
  28.                   loader: 'babel-loader'
  29.                }
  30.             },
  31.             {
  32.                test: /\.scss$/,
  33.                use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader']
  34.             },
  35.             {
  36.                test: /\.svg$/,
  37.                use: [
  38.                   {
  39.                      loader: 'svg-sprite-loader',
  40.                      options: {
  41.                         symbolId: '[name]',
  42.                         extract: true,
  43.                         spriteFilename: '../svg/sprites.svg'
  44.                      }
  45.                   },
  46.                   'svgo-loader'
  47.                ]
  48.             }
  49.          ]
  50.       },
  51.       resolve: {
  52.          extensions: ['.js', '.jsx'],
  53.          alias: {
  54.             'react-dom': '@hot-loader/react-dom'
  55.          }
  56.       },
  57.       plugins: [
  58.          //new BundleAnalyzerPlugin(),
  59.          new SpriteLoaderPlugin(),
  60.          new MiniCssExtractPlugin({
  61.             filename: '../css/[name].css'
  62.          }),
  63.          new CleanWebpackPlugin({
  64.             verbose: true,
  65.             cleanOnceBeforeBuildPatterns: ['**/*']
  66.         }),
  67.         new HardSourceWebpackPlugin()
  68.      ],
  69.      devServer: {
  70.         proxy: {
  71.            '/': 'http://dev.synoptik.intranet.no'
  72.          },
  73.          compress: false,
  74.          disableHostCheck: true,
  75.          hot: true,
  76.          writeToDisk: true,
  77.          sockPort: 8080
  78.          //host: '0.0.0.0'
  79.       }
  80.    };
  81. };
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top