Advertisement
stasgavrylov

Untitled

Apr 13th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const path = require('path');
  2. const ExtractTextPlugin = require('extract-text-webpack-plugin');
  3.  
  4. module.exports = {
  5.   entry: ['./src/components/index.js', './src/styles/main.scss'],
  6.   output: {
  7.     path: path.join(__dirname, './dist'),
  8.     filename: 'bundle.js',
  9.     libraryTarget: 'commonjs2',
  10.     publicPath: '/dist/',
  11.     umdNamedDefine: true,
  12.   },
  13.   module: {
  14.     rules: [
  15.       {
  16.         test: /\.(js|jsx)$/,
  17.         include: path.resolve(__dirname, 'src'),
  18.         exclude: /node_modules/,
  19.         use: ['babel-loader'],
  20.       },
  21.       {
  22.         test: /\.css$/,
  23.         use: [
  24.           {
  25.             loader: 'style-loader', // creates style nodes from JS strings
  26.           },
  27.           {
  28.             loader: 'css-loader', // translates CSS into CommonJS
  29.           },
  30.         ],
  31.       },
  32.       {
  33.         test: /\.scss$/,
  34.         use: [
  35.           {
  36.             loader: 'style-loader', // creates style nodes from JS strings
  37.           },
  38.           {
  39.             loader: 'css-loader', // translates CSS into CommonJS
  40.           },
  41.           {
  42.             loader: 'sass-loader', // compiles Sass to CSS
  43.           },
  44.         ],
  45.       },
  46.       {
  47.         test: /\.svg$/,
  48.         loader: 'svg-url-loader',
  49.       },
  50.       {
  51.         test: /main\.scss$/,
  52.         use: ExtractTextPlugin.extract({
  53.            fallback: 'style-loader',
  54.            use: [
  55.              { loader: 'css-loader', options: { minimize: true } },
  56.              { loader: 'sass-loader' }
  57.            ]
  58.         })
  59.                 // loader: ExtractTextPlugin.extract(['css-loader', 'sass-loader']),
  60.       }
  61.     ],
  62.   },
  63.   plugins: [
  64.     new ExtractTextPlugin({
  65.       filename: 'styles.min.css',
  66.       allChunks: true,
  67.     }),
  68.   ],
  69.   resolve: {
  70.     extensions: ['*', '.js', '.jsx'],
  71.     modules: [path.resolve(__dirname, 'src'), 'node_modules'],
  72.   },
  73.   externals: {
  74.     // Don't bundle react or react-dom
  75.     react: {
  76.       commonjs: 'react',
  77.       commonjs2: 'react',
  78.       amd: 'React',
  79.       root: 'React',
  80.     },
  81.     'react-dom': {
  82.       commonjs: 'react-dom',
  83.       commonjs2: 'react-dom',
  84.       amd: 'ReactDOM',
  85.       root: 'ReactDOM',
  86.     },
  87.   },
  88.   devServer: {
  89.     contentBase: './dist',
  90.   },
  91. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement