const { resolve, join } = require('path') const webpack = require('webpack') const ExtractTextPlugin = require('extract-text-webpack-plugin') const config = { context: resolve(__dirname, 'src'), entry: { bundle: [ './app-client.js' ], 'vendor/js': [ 'react', 'react-dom', 'redux', 'react-redux' ] }, output: { path: resolve(__dirname, 'public/static'), filename: '[name].js', publicPath: '/static/' }, module: { rules: [ { test: /\.js$/, use: [ 'babel-loader' ], exclude: '/node_modules/' }, { test: /\.css$/, use: ExtractTextPlugin.extract({ use: [ { loader: 'css-loader', options: { modules: true, importLoaders: 1, localIdentName: '[name]_[local]___[hash:base64:5]' } }, { loader: 'postcss-loader' } ] }) } ] }, plugins: [ new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', minChunks: function (module) { // this assumes your vendor imports exist in the node_modules directory return module.context && module.context.indexOf('node_modules') !== -1 } }), new ExtractTextPlugin({ filename: '[name].css', disable: false, allChunks: true }) ] } module.exports = config