import path from 'path'; import config from './index'; export default { module: { rules: [ { test: /\.jsx?$/, loader: ['babel-loader', 'eslint-loader'], exclude: /node_modules/, }, { test: /\.css$/, exclude: [/icomoon\/style.css$/, /icomoon\\style.css$/, /global.css$/], use: [ 'style-loader', { loader: 'css-loader', options: { // Note that we’ve set importLoaders: 1 on css-loader. // We’re setting this because we want PostCSS to git @import statements first modules: true, importLoaders: 1, localIdentName: '[path][name]__[local]--[hash:base64:5]' }, }, { loader: 'postcss-loader', options: { plugins: (loader) => [ require('postcss-import')(), require('postcss-cssnext')({ browsers: [ 'last 2 Chrome versions', 'last 2 Edge versions', 'last 2 Safari versions', 'last 2 Firefox versions', ], }), ] } } ], }, { test: /icomoon(\/|\\)style.css$/, use: [ 'style-loader', 'css-loader', ], }, { test: /global.css$/, use: [ 'style-loader', 'css-loader', ], }, { test: /\.html/, loader: 'html-loader', }, { test: /\.woff(\?.*)?$/, loader: 'url-loader?prefix=fonts/&name=[path][name].[ext]&limit=40000&mimetype=application/font-woff', }, { test: /\.woff2(\?.*)?$/, loader: 'url-loader?prefix=fonts/&name=[path][name].[ext]&limit=40000&mimetype=application/font-woff2', }, { test: /\.otf(\?.*)?$/, loader: 'url-loader?prefix=fonts/&name=[path][name].[ext]&limit=40000&mimetype=font/opentype', }, { test: /\.ttf(\?.*)?$/, loader: 'url-loader?prefix=fonts/&name=[path][name].[ext]&limit=40000&mimetype=application/octet-stream', }, { test: /\.svg(\?.*)?$/, loader: 'url-loader?prefix=fonts/&name=[path][name].[ext]&limit=40000&mimetype=image/svg+xml', }, { test: /\.eot(\?.*)?$/, loader: 'url-loader?prefix=fonts/&name=[path][name].[ext]&limit=40000', }, { test: /\.(png|jpg|jpeg|gif)$/, loader: 'url-loader' }, ] }, output: { path: config.dist, filename: 'bundle.js', // https://github.com/webpack/webpack/issues/1114 libraryTarget: 'commonjs2' }, resolve: { extensions: ['.js', '.jsx', '.json'], alias: { components: path.join(config.client, 'js/components/'), utils: path.join(config.client, 'js/utils/'), images: path.join(config.client, 'assets/images/'), fonts: path.join(config.client, 'assets/fonts/'), }, }, };