| 
									
										
										
										
											2015-11-11 13:29:33 -08:00
										 |  |  | var webpack = require('webpack'); | 
					
						
							| 
									
										
										
										
											2015-06-29 09:50:25 -07:00
										 |  |  | var path = require('path'); | 
					
						
							| 
									
										
										
										
											2016-03-20 21:43:36 -07:00
										 |  |  | var ManifestPlugin = require('webpack-manifest-plugin'); | 
					
						
							|  |  |  | var ChunkManifestPlugin = require('chunk-manifest-webpack-plugin'); | 
					
						
							| 
									
										
										
										
											2015-11-22 20:26:44 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | var __DEV__ = process.env.NODE_ENV !== 'production'; | 
					
						
							| 
									
										
										
										
											2015-06-29 09:50:25 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | module.exports = { | 
					
						
							| 
									
										
										
										
											2016-03-20 21:43:36 -07:00
										 |  |  |   entry: { | 
					
						
							|  |  |  |     bundle: './client' | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   devtool: __DEV__ ? 'inline-source-map' : null, | 
					
						
							| 
									
										
										
										
											2016-08-18 18:23:44 -07:00
										 |  |  |   node: { | 
					
						
							|  |  |  |     // Mock Node.js modules that Babel require()s but that we don't
 | 
					
						
							|  |  |  |     // particularly care about.
 | 
					
						
							|  |  |  |     fs: 'empty', | 
					
						
							|  |  |  |     module: 'empty', | 
					
						
							|  |  |  |     net: 'empty' | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2015-06-29 09:50:25 -07:00
										 |  |  |   output: { | 
					
						
							| 
									
										
										
										
											2016-03-20 21:43:36 -07:00
										 |  |  |     filename: __DEV__ ? 'bundle.js' : 'bundle-[hash].js', | 
					
						
							|  |  |  |     chunkFilename: __DEV__ ? | 
					
						
							|  |  |  |       'bundle-[name].js' : | 
					
						
							|  |  |  |       'bundle-[name]-[chunkhash].js', | 
					
						
							| 
									
										
										
										
											2015-06-29 09:50:25 -07:00
										 |  |  |     path: path.join(__dirname, '/public/js'), | 
					
						
							| 
									
										
										
										
											2016-09-27 10:57:56 -07:00
										 |  |  |     publicPath: '/js' | 
					
						
							| 
									
										
										
										
											2015-06-29 09:50:25 -07:00
										 |  |  |   }, | 
					
						
							|  |  |  |   module: { | 
					
						
							|  |  |  |     loaders: [ | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         test: /\.jsx?$/, | 
					
						
							|  |  |  |         include: [ | 
					
						
							|  |  |  |           path.join(__dirname, 'client/'), | 
					
						
							|  |  |  |           path.join(__dirname, 'common/') | 
					
						
							|  |  |  |         ], | 
					
						
							| 
									
										
										
										
											2016-09-27 10:57:56 -07:00
										 |  |  |         loaders: __DEV__ ? ['react-hot', 'babel'] : [ 'babel' ] | 
					
						
							| 
									
										
										
										
											2015-06-29 09:50:25 -07:00
										 |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         test: /\.json$/, | 
					
						
							|  |  |  |         loaders: [ | 
					
						
							|  |  |  |           'json-loader' | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     ] | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2016-03-05 21:06:04 -08:00
										 |  |  |   externals: { | 
					
						
							| 
									
										
										
										
											2016-05-20 12:42:26 -07:00
										 |  |  |     codemirror: 'CodeMirror', | 
					
						
							|  |  |  |     'loop-protect': 'loopProtect' | 
					
						
							| 
									
										
										
										
											2016-03-05 21:06:04 -08:00
										 |  |  |   }, | 
					
						
							| 
									
										
										
										
											2015-11-22 20:26:44 -08:00
										 |  |  |   plugins: [ | 
					
						
							|  |  |  |     new webpack.DefinePlugin({ | 
					
						
							|  |  |  |       'process.env': { | 
					
						
							| 
									
										
										
										
											2016-05-06 13:20:18 -07:00
										 |  |  |         NODE_ENV: JSON.stringify(__DEV__ ? 'development' : 'production') | 
					
						
							| 
									
										
										
										
											2015-11-22 20:26:44 -08:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2016-05-06 13:20:18 -07:00
										 |  |  |       __DEVTOOLS__: !__DEV__ | 
					
						
							| 
									
										
										
										
											2016-08-18 18:23:44 -07:00
										 |  |  |     }), | 
					
						
							| 
									
										
										
										
											2017-01-08 13:44:30 -08:00
										 |  |  |     // Use browser version of visionmedia-debug
 | 
					
						
							|  |  |  |     new webpack.NormalModuleReplacementPlugin( | 
					
						
							|  |  |  |       /debug\/node/, | 
					
						
							|  |  |  |       'debug/src/browser' | 
					
						
							|  |  |  |     ), | 
					
						
							| 
									
										
										
										
											2016-08-18 18:23:44 -07:00
										 |  |  |     new webpack.optimize.DedupePlugin(), | 
					
						
							|  |  |  |     new webpack.optimize.OccurenceOrderPlugin(true) | 
					
						
							| 
									
										
										
										
											2015-11-22 20:26:44 -08:00
										 |  |  |   ] | 
					
						
							| 
									
										
										
										
											2015-06-29 09:50:25 -07:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2016-03-20 21:43:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | if (!__DEV__) { | 
					
						
							|  |  |  |   module.exports.plugins.push( | 
					
						
							|  |  |  |     new ManifestPlugin({ fileName: 'react-manifest.json' }), | 
					
						
							|  |  |  |     new ChunkManifestPlugin({ | 
					
						
							|  |  |  |       filename: 'chunk-manifest.json', | 
					
						
							|  |  |  |       manifestVariable: 'webpackManifest' | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |   ); | 
					
						
							|  |  |  | } else { | 
					
						
							|  |  |  |   module.exports.plugins.push( | 
					
						
							|  |  |  |     new webpack.HotModuleReplacementPlugin(), | 
					
						
							|  |  |  |     new webpack.NoErrorsPlugin() | 
					
						
							|  |  |  |   ); | 
					
						
							|  |  |  | } |