@@ -11,6 +11,7 @@ var path = require('path');
1111var autoprefixer = require ( 'autoprefixer' ) ;
1212var webpack = require ( 'webpack' ) ;
1313var HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
14+ var ExtractTextPlugin = require ( 'extract-text-webpack-plugin' ) ;
1415
1516var isInNodeModules = 'node_modules' ===
1617 path . basename ( path . resolve ( path . join ( __dirname , '..' , '..' ) ) ) ;
@@ -22,7 +23,8 @@ module.exports = {
2223 entry : './src/index.js' ,
2324 output : {
2425 path : path . resolve ( __dirname , relative , 'build' ) ,
25- filename : '[name].[hash].js' ,
26+ filename : '[name].[chunkhash].js' ,
27+ chunkFilename : '[name].[chunkhash].chunk.js' ,
2628 // TODO: this wouldn't work for e.g. GH Pages.
2729 // Good news: we can infer it from package.json :-)
2830 publicPath : '/'
@@ -49,7 +51,7 @@ module.exports = {
4951 {
5052 test : / \. c s s $ / ,
5153 include : path . resolve ( __dirname , relative , 'src' ) ,
52- loader : 'style! css!postcss'
54+ loader : ExtractTextPlugin . extract ( 'style' , ' css!postcss')
5355 } ,
5456 {
5557 test : / \. j s o n $ / ,
@@ -93,6 +95,7 @@ module.exports = {
9395 } ) ,
9496 new webpack . DefinePlugin ( { 'process.env.NODE_ENV' : '"production"' } ) ,
9597 new webpack . optimize . OccurrenceOrderPlugin ( ) ,
98+ new webpack . optimize . DedupePlugin ( ) ,
9699 new webpack . optimize . UglifyJsPlugin ( {
97100 compressor : {
98101 screw_ie8 : true ,
@@ -105,6 +108,7 @@ module.exports = {
105108 comments : false ,
106109 screw_ie8 : true
107110 }
108- } )
111+ } ) ,
112+ new ExtractTextPlugin ( '[name].[contenthash].css' )
109113 ]
110114} ;
0 commit comments