73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | const webpack = require('webpack'); | ||
|  | const path = require('path'); | ||
|  | const UglifyPlugin = require('uglifyjs-webpack-plugin'); | ||
|  | 
 | ||
|  | const __DEV__ = process.env.NODE_ENV !== 'production'; | ||
|  | 
 | ||
|  | module.exports = { | ||
|  |   entry: './src/client/frame-runner.js', | ||
|  |   devtool: __DEV__ ? 'inline-source-map' : 'source-map', | ||
|  |   node: { | ||
|  |     // Mock Node.js modules that Babel require()s but that we don't
 | ||
|  |     // particularly care about.
 | ||
|  |     fs: 'empty', | ||
|  |     module: 'empty', | ||
|  |     net: 'empty' | ||
|  |   }, | ||
|  |   output: { | ||
|  |     filename: __DEV__ ? 'frame-runner.js' : 'frame-runner-[hash].js', | ||
|  |     path: path.join(__dirname, './static/js') | ||
|  |   }, | ||
|  |   stats: { | ||
|  |     // Examine all modules
 | ||
|  |     maxModules: Infinity, | ||
|  |     // Display bailout reasons
 | ||
|  |     optimizationBailout: true | ||
|  |   }, | ||
|  |   module: { | ||
|  |     rules: [{ | ||
|  |       test: /\.jsx?$/, | ||
|  |       include: [ path.join(__dirname, 'client/') ], | ||
|  |       use: { | ||
|  |         loader: 'babel-loader', | ||
|  |         options: { | ||
|  |           babelrc: false, | ||
|  |           presets: [ | ||
|  |             [ 'es2015', { modules: false }], | ||
|  |             [ 'stage-3' ] | ||
|  |           ], | ||
|  |           plugins: [ | ||
|  |             'transform-runtime', | ||
|  |             'lodash' | ||
|  |           ] | ||
|  |         } | ||
|  |       } | ||
|  |     }] | ||
|  |   }, | ||
|  |   externals: { | ||
|  |     rxjs: 'Rx' | ||
|  |   }, | ||
|  |   plugins: [ | ||
|  |     new webpack.DefinePlugin({ | ||
|  |       'process.env': { | ||
|  |         NODE_ENV: JSON.stringify(__DEV__ ? 'development' : 'production') | ||
|  |       }, | ||
|  |       __DEVTOOLS__: !__DEV__ | ||
|  |     }), | ||
|  |     // Use browser version of visionmedia-debug
 | ||
|  |     new webpack.NormalModuleReplacementPlugin( | ||
|  |       /debug\/node/, | ||
|  |       'debug/src/browser' | ||
|  |     ) | ||
|  |   ] | ||
|  | }; | ||
|  | 
 | ||
|  | module.exports.plugins.push( | ||
|  |   new UglifyPlugin({ | ||
|  |     test: /\.js($|\?)/i, | ||
|  |     cache: true, | ||
|  |     sourceMap: true | ||
|  |   }) | ||
|  | ); | ||
|  | 
 |