UNPKG

react-conventions

Version:

An open source set of React components that implement Ambassador's Design and UX patterns.

97 lines (94 loc) 2.97 kB
const path = require('path'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); const precss = require('precss'); const autoprefixer = require('autoprefixer'); const StatsPlugin = require('stats-webpack-plugin'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const config = { entry: [ path.join(__dirname, 'src/app/index.js') ], resolve: { extensions: ['', '.js', '.md', '.txt', '.scss', '.css'], alias: { 'react-conventions/lib': path.resolve(__dirname, '../src/components'), 'react-conventions/styles': path.resolve(__dirname, '../src/styles'), 'global/fonts': path.resolve(__dirname, '../src/assets/fonts'), 'global/icons': path.resolve(__dirname, '../src/assets/icons'), 'private/css': path.resolve(__dirname, 'src/www/css'), 'private/base': path.resolve(__dirname, 'src/www/css/base'), 'private/images': path.resolve(__dirname, 'src/www/images'), 'private/modules': path.resolve(__dirname, 'src/app/modules'), 'private/config': path.resolve(__dirname, 'src/app/_config') }, }, output: { path: path.join(__dirname, '/dist/'), filename: '[name]-[hash].min.js', publicPath: '/' }, plugins: [ new CleanWebpackPlugin(['dist'], { root: path.join(__dirname, '/') }), new webpack.optimize.OccurrenceOrderPlugin(), new HtmlWebpackPlugin({ template: path.join(__dirname, 'src/app/index.html'), inject: 'body', filename: 'index.html' }), new ExtractTextPlugin('[name]-[hash].min.css'), new webpack.optimize.UglifyJsPlugin({ compressor: { warnings: false, screw_ie8: true } }), new StatsPlugin('webpack.stats.json', { source: false, modules: false }), new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) }) ], module: { loaders: [{ test: /\.js?$/, exclude: /node_modules/, loader: 'babel' }, { test: /\.json?$/, loader: 'json' }, { test: /\.(css|scss)$/, loader: ExtractTextPlugin.extract( 'style', 'css?modules&localIdentName=[local]-[hash:base64:5]!postcss-loader!sass' ), exclude: [ path.resolve(__dirname, '../src/styles/global/') ] }, { test: /\.(css|scss)$/, loader: ExtractTextPlugin.extract( 'style', 'css!postcss-loader!sass' ), include: [ path.resolve(__dirname, '../src/styles/global/') ] }, { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'url-loader?limit=10000&minetype=application/font-woff' }, { test: /\.(jpe?g|gif|png|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'file-loader' } ] }, postcss: [ autoprefixer({ browsers: ['last 2 versions'] }) ] }; module.exports = config;