/* eslint global-require: 0 */ const webpack = require('webpack'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); module.exports = { module: { loaders: [ { loader: 'babel', test: /\.js?$/, exclude: /node_modules/, }, { /* CSS loader for npm modules that are shipped with CSS. List all of theme in the array */ test: /\.css$/, include: [/redux-notifications/], loader: ExtractTextPlugin.extract('style', 'css'), }, { /* React-toolbox still relies on SCSS and css-modules */ test: /\.scss$/, include: [/react-toolbox/], loader: ExtractTextPlugin.extract('style', 'css?modules!sass'), }, { /* We use CSS-modules and PostCSS for CMS styles */ test: /\.css$/, exclude: /node_modules/, loader: ExtractTextPlugin.extract('style', 'css?modules&importLoaders=1&&localIdentName=cms__[name]__[local]!postcss'), }, { test: /\.(png|eot|woff|woff2|ttf|svg|gif)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000', }, { test: /\.json$/, loader: 'json-loader', }, ], }, postcss: [ require('postcss-import')({ addDependencyTo: webpack }), require('postcss-cssnext')({ browsers: ['last 2 versions', 'IE > 10'], }), ], plugins: [ new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), // Ignore all optional deps of moment.js new webpack.ProvidePlugin({ fetch: 'imports?this=>global!exports?global.fetch!whatwg-fetch', }), ], target: 'web', // Make web variables accessible to webpack, e.g. window };