var path = require('path'); var webpack = require('webpack'); var config = { devtool: 'cheap-module-eval-source-map', entry: [ 'webpack-hot-middleware/client', './app/main' ], output: { path: path.join(__dirname, 'public', 'js'), filename: 'bundle.js', publicPath: '/js' }, plugins: [ new webpack.HotModuleReplacementPlugin(), new webpack.NoErrorsPlugin(), new webpack.optimize.OccurenceOrderPlugin(), new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) }) ], module: { loaders: [ { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader', query: { plugins: [ ['react-transform', { transforms: [ { transform: 'react-transform-hmr', imports: ['react'], locals: ['module'] }, { transform: 'react-transform-catch-errors', imports: ['react', 'redbox-react'] } ] }] ] } }, { test: /\.less$/, loader: 'style-loader!css-loader!less-loader!postcss-loader' }, { test: /(\.scss)$/, loaders: [ require.resolve('style-loader'), require.resolve('css-loader') + '?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', require.resolve('sass-loader') + '?sourceMap' ] }, { test: /\.css$/, loader: 'style-loader!css-loader!postcss-loader' }, { test: /\.(png|jpg|jpeg|gif|svg|woff|woff2)$/, loader: 'url-loader?limit=8192' } ] }, postcss: () => { return [ require('precss'), require('autoprefixer') ]; } }; if (process.env.NODE_ENV === 'production') { config.plugins.push( new webpack.optimize.UglifyJsPlugin({ compressor: { screw_ie8: true, warnings: false } }) ); } module.exports = config;